Docker的那些事儿—Docker数据卷(一)(29)


上一篇:Docker的那些事儿—Docker数据管理(28)


数据卷是一个或多个容器专门指定绕过Union File System,为持续性或共享数据提供一些有用的功能:

(1)数据卷可以在容器间共享和重用。

(2)数据卷数据的改变是直接修改的。

(3)数据卷数据的改变不会被包括在容器中。

(4)数据卷是持续性的,直到没有容器使用它们。

数据卷操作

Docker启动的时候可以通过-v选项添加数据卷,实现将主机上的目录或者文件挂载到容器中。完整的参数为:

-v host-dir:container-dir:[rw|wo]

-v container-dir:[rw|wo]

-v volume-name:container-dir:[rw|wo]

其中,

host-dir:表示主机上的目录,如果不存在,Docker 会自动在主机上创建该目录。必须是绝对路径

container-dir:表示容器内部对应的目录,如果该目录不存在,Docker 也会在容器内部创建该目录。

volume-name:表示卷名,如果该卷不存在,docker将自动创建。

rw|ro:用于控制volume的读写权限。

(1)docker run -itd -P -v /test:/data --name myhttp httpd

在宿主机/test目录下创建test.txt文件,观察容器内/data目录下内容变化

docker container inspect myhttp查询Mounts参数如下:

删除容器,宿主机上/test目录及内容未发生任何变化。

(2)docker run -itd -P -v /data --name myhttp httpd

我们看到容器内出现了/data目录。那这一次又是宿主机上哪个目录挂载到/data下的呢?

我们使用docker volume ls查询,发现多了一个本地卷:f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee

使用docker volume inspect查询到如下的挂下点目录:

/var/lib/docker/volumes/f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee/_data

当在上述目录下创建test.txt文件后,容器内也查询到该新增文件。

删除容器后,宿主机上的目录及内容也未发生任何变化。

(3)docker run -itd -P -v my_volume:/data --name myhttp httpd

docker自动创建了卷:my_volume,并且这个卷对应的宿主机的挂载点是:

/var/lib/docker/volumes/my_volume/_data。这和第二种方式几乎一样,不同点在于未指定volume名是docker会在/var/lib/docker/volumes随机创建一个目录。

docker container inspect myhttp查询Mounts参数如下:

对于docker数据卷的总结:

(1) 三种方式都可以将宿主机目录或者文件挂载到容器。

(2) Docker提供了docker volume命令专门对volume进行管理。对于第一种方式Type为bind,是无法使用docker volume进行管理的。我们也可以使用docker volume create命令创建volume。

(3) 删除容器是如果使用docker rm container将不会删除对应的Volume。如果想要删除可以使用docker rm -v container。另外也可以单独使用docker volume rm volume_name删除volume。

(4) 对于已运行的数据卷容器,不能动态的调整其卷的挂载。Docker官方提供的方法是先删除容器,然后启动时重新挂载。



下一篇:Docker的那些事儿—Docker数据卷(二)(30)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,593评论 0 120
  • Docker学习总结之Run命令介绍 - vikings`s blog - 博客园http://www.cnblo...
    葡萄喃喃呓语阅读 5,028评论 0 1
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 9,854评论 0 27
  • 姐姐告诉我了一部动漫,叫银魂。 开始看了一两集挺喜欢的慢慢的忘了,偶然在17年初又喜欢上了这部动漫。 喜欢,就是喜...
    白楠澈阅读 1,679评论 3 0
  • 上周四,我叫滴滴快车到机关医院拿药,来接我的快车竟然是一辆林肯车,我核对车牌号后也未敢上车,正在我盲然时,司机向我...
    吾吾斋阅读 1,270评论 0 0

友情链接更多精彩内容