一、数据卷容器是什么?
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器
二、总体介绍
1、以 这篇文章中新建的镜像zzyy/centos 为模板并运行容器dc01/dc02/dc03
2、它们已经具有容器卷(/dataVolumeContainer1和/dataVolumeContainer2)
三、容器间传递共享(–volumes-from)
1、先启动一个父容器dc01,在dataVolumeContainer2新增内容
[root@localhost]# docker images zzyy/centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
zzyy/centos latest 980c9235ff13 18 hours age 199.7 MB
[root@localhost]# docker run --name dc01 zzyy/centos
[root@5ae43b1bcf46]# ll
[root@5ae43b1bcf46]# cd dataVolumeContainer2
[root@5ae43b1bcf46 dataVolumeContainer2]# pwd
/dataVolumeContainer2
[root@5ae43b1bcf46 dataVolumeContainer2]# ll
total 0
[root@5ae43b1bcf46 dataVolumeContainer2]# touch dc01_add.txt
[root@5ae43b1bcf46 dataVolumeContainer2]# 按住Ctrl+p+q退出到宿主机根目录
[root@localhost]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ae43b1bcf46 zzyy/centos "/bin/sh -c /bin/bas Up About a minute dc01
[root@localhost]#
2、dc02/dc03继承自dc01,dc02/dc03分别在dataVolumeContainer2各自新增内容,命令如下:docker run -it --name dc02 --volumes-from dc01 zzyy/centos
dc02继承自dc01命令如下:
[root@localhost]#docker run -it --name dc02 --volumes-from dc01 zzyy/centos
[root@978bd77d033]# ll
[root@978bd77d033]# cd dataVolumeContainer2
[root@978bd77d033 dataVolumeContainer2]# pwd
/dataVolumeContainer2
[root@978bd77d033 dataVolumeContainer2]# ll
total 0
--rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
[root@978bd77d033 dataVolumeContainer2]# touch dc02_add.txt
[root@978bd77d033 dataVolumeContainer2]# 按住Ctrl+p+q退出到宿主机根目录
[root@localhost]# docker ps
dc03继承自dc01命令如下:
[root@localhost]#docker run -it --name dc03 --volumes-from dc01 zzyy/centos
[root@11ddcf53de8c]# cd dataVolumeContainer2
[root@11ddcf53de8c dataVolumeContainer2]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
[root@11ddcf53de8c dataVolumeContainer2]#touch dc03_add.txt
[root@11ddcf53de8c dataVolumeContainer2]# 按住Ctrl+p+q退出到宿主机根目录
[root@localhost]# docker ps
3、回到dc01可以看到02/03各自添加的都能共享了
[root@localhost]# docker attach dc01
[root@5ae43b1bcf46 dataVolumeContainer2]# pwd
/dataVolumeContainer2
[root@5ae43b1bcf46 dataVolumeContainer2]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc03_add.txt
[root@5ae43b1bcf46 dataVolumeContainer2]#
4、删除dc01并修改dc02后,dc03可否访问 删除dc01
[root@localhost]# docker ps
[root@localhost]# docker rm -f doc01
doc01
[root@localhost]# docker ps
修改dc02
[root@localhost]# docker docker attach doc02
[root@9784bd77d033 dataVolumeContainer2]# pwd
/dataVolumeContainer2
[root@9784bd77d033 dataVolumeContainer2]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc03_add.txt
[root@9784bd77d033 dataVolumeContainer2]#touch dc02_update.txt
[root@9784bd77d033 dataVolumeContainer2]#ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_update.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc03_add.txt
[root@9784bd77d033 dataVolumeContainer2]# 按住Ctrl+p+q退出到宿主机根目录
[root@localhost]#
可访问dc03
[root@localhost]# docker attach dc03
[root@11ddcf53de8c dataVolumeContainer2 ]# pwd
/dataVolumeContainer2
[root@11ddcf53de8c dataVolumeContainer2 ]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_update.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc03_add.txt
5、在删除dc01的基础上,再删除dc02,dc03可否访问
删除dc02
[root@localhost]# docker ps
[root@localhost]# docker rm -f doc02
doc02
[root@localhost]# docker ps
可访问dc03
[root@localhost]# docker attach dc03
[root@11ddcf53de8c dataVolumeContainer2 ]# pwd
/dataVolumeContainer2
[root@11ddcf53de8c dataVolumeContainer2 ]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc01_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_add.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc02_update.txt
-rw-r--r--. 1 root root 0 Jul 13 02:23 dc03_add.txt
6、结论
结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止