在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
默认容器的数据的读写发生在容器的存储层,当容器被删除时其上的数据将会丢失。所以我们应该尽量保证容器存储层不发生写操作,为了实现数据的持久化存储我们需要选择一种方案来保存数据,当前有以下几种方式:
下图展示了这三种技术: Volumes Volumes(数据卷)是一个可供一个或多个容器使用的位于宿主机上特殊目录,它拥有以下特性:
使用数据卷的步骤一般分为两步:
Volume管理 创建一个Volume: $ docker volume create my-vol 查看Volumes: $ docker volume ls local my-vol $ docker volume inspect my-vol [ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/my-vol/_data", "Name": "my-vol", "Options": {}, "Scope": "local" } ] 我么可以看到创建的Volume my-vol保存在目录 删除一个Volume: $ docker volume rm my-vol 或者删除所有未使用的Volumes: docker volume prune 挂载数据卷到容器目录 创建了一个Volume之后,我们可以在运行容器时通过指定-v或--mount参数来使用该Volume: 使用 $ docker run -d \ --name=nginxtest \ --mount source=nginx-vol,destination=/usr/share/nginx/html \ nginx:latest
或者使用-v参数: $ docker run -d \ --name=nginxtest \ -v nginx-vol:/usr/share/nginx/html \ nginx:latest 挂载成功后,容器从/usr/share/nginx/html目录下读取或写入数据,实际上都是从宿主机的nginx-vol数据卷中读取或写入数据。因此Volumes或Bind mounts也可以看作是容器和宿主机共享文件的一种方式。
使用只读数据卷 有些情况下,我们希望某个数据卷对某个容器来说是只读的,可以通过添加readonly选项来实现: $ docker run -d \ --name=nginxtest \ --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \ nginx:latest 或者使用-v参数: $ docker run -d \ --name=nginxtest \ -v nginx-vol:/usr/share/nginx/html:ro \ nginx:latest Volumes使用场景 请参考这篇文章:Docker数据存储总结 参考文章
总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对极客世界的支持。如果你想了解更多相关内容请查看下面相关链接 |
请发表评论