CONTENTS
1、数据卷volume
1.1 相关概念
(1)数据卷相关概念梳理
我们要知道docker镜像由多个只读层叠加而成,如果要修改运行的容器中的文件,那么就会将该文件从只读层复制到读写层,只读版本独立存在。这就是所谓的“写时复制”机制。
docker中文件存在于联合文件系统(UFS)中,不易于宿主机访问;荣期间数据共享不便;删除容器后数据会丢失。为了解决这些问题,“卷(volume)”就产生了。volume的初衷就是数据持久化。
“卷”是容器上一个或多个目录,此目录可绕过联合文件系统,与宿主机上某目录绑定。volume可以在运行容器时即完成创建与绑定操作。
(2)挂载卷的方式有“Bind mount volume”和“docker-managed volume”。它们与宿主机目录对应的关系如下图:

1.2 docker-managed volume
(1)这个是docker默认的管理卷,存放在/var/lib/docker/volumes目录下,数据卷的名称都是随机生成的。

(2)先清空容器并删除卷目录下的内容,然后我们简单运行WordPress和tomcat两个容器。
docker rm -f -v $( docker ps -a -q )
rm -rf *
docker images
docker run --name word -d wordpress:latest
docker run --name tomcat1 -d tomcat:v1
这时候我们查看在/var/lib/docker/volumes下只出现一个文件夹,而且是Wordpress的。原因就是只有Wordpress在dockerfile中声明了容器管理卷,所以我们运行WordPress的时候就会出现相关的卷。

如果在宿主机的目录下创建对应的文件,相应的容器中也会出现文件:


最低0.47元/天 解锁文章
612

被折叠的 条评论
为什么被折叠?



