文章目录
1 容器之间实现数据共享
使用上一节课制作的镜像,启动一个名为docker’01 的centos’容器‘
docker run -it --name docker01 yaoyao_centos:1.0 /bin/bash
查看一下目录,volume01和volume02两个目录是存在的
[root@c96045cb93a9 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volumeo2
在启动一个,名为docker02
使用--volumes-from
参数
docker run -it --name docker02 --volumes-from docker01 yaoyao_centos:1.0
查看目录也是有volume01和volume02两个目录
[root@900597581ffa /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volumeo2
在docker01 的volume01目录下里面新增一个文件,观察docker02是否会同步这个文件
[root@c96045cb93a9 /]# cd volume01
[root@c96045cb93a9 volume01]# touch test.java
[root@c96045cb93a9 volume01]# ls
test.java
进入docker02的的volume01目录下,观察docker02是否会同步这个文件
[root@900597581ffa /]# cd volume01
[root@900597581ffa volume01]# ls
test.java
结论
docker01的volume01的数据同步到了docker02中
在docker02对刚刚的文件的编辑,新增一行内容hello world,观察docker01中数据变化
[root@c96045cb93a9 volume01]# cat test.java
hello world
数据同样会同步过去
总结
docker run -it --name docker02 --volumes-from docker01 yaoyao_centos:1.0
--volumes-from docker01
: 就是指定了两个容器可以同步,具体是那些文件,在dockerfile中写的
docker01 就称为数据卷容器
在启动一个docker03
docker run -it --name docker03 --volumes-from docker01 yaoyao_centos:1.0
观察volume01下的文件, test.java文件在启动容器的时候就同步过来了
[root@4d311f8a5c35 volume01]# ls
test.java
在docker03新建一个文件test02.java, 去观察02,03两个容器
02,03两个容器也会同步这个文件
停掉docker01, 发现02.03下的文件依旧存在,
➜ ~ docker stop docker01
docker01
在docker02中修改test02.java文件,观察03中文件是否会同步: 会同步
[root@4d311f8a5c35 volume01]# cat test02.java
test02 hello world
重启docker01, 并且进入该容器
docker start docker01
docker exec -it c96045cb93a9 /bin/bash
观察docker01中的test02.java, 刚刚即使停止了这个容器,只要重启就会同步数据
[root@c96045cb93a9 volume01]# cat test02.java
test02 hello world
再次停掉docker01 并且删除该容器
docker stop docker01
docker rm -f docker01
观察02和03下文件情况:文件还在
[root@4d311f8a5c35 volume01]# ls
test.java test02.java
再02中在创建一个文件,03还是会同步过去的
到此,数据卷容器的一些场景测试基本完成