Docker Data Volume
什么是数据卷容器?
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
一、创建一个数据卷容器
启动一个名为 data01 容器,此容器包含两个数据卷/var/volume1和/var/volume2(这两个数据卷目录是在容器里的,容器创建的时候会自动生成这两目录)
[root@langzi01 ~]# docker run -t -i -v /var/volume1 -v /var/volume2 --name data01 centos /bin/bash
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
[root@langzi01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f5f9417b073 centos "/bin/bash" 22 seconds ago Up 22 seconds data01
查看宿主机上与数据卷对应的目录路径
[root@langzi01 ~]# docker inspect data01|grep /var/lib/docker/volumes/
"Source": "/var/lib/docker/volumes/e1077349e5f6771faa90bc3a84530b605910b108e214be03250c8dc46ac5af2d/_data",
"Source": "/var/lib/docker/volumes/a34f7acace923e4a5acd687b79a06c164bbf7b6ddb5f552055eeab1ff6055a0b/_data",
查看文件目录里面有没有内容
[root@2f5f9417b073 var]# cd /var/volume
volume1/ volume2/
[root@2f5f9417b073 var]# ls /var/volume1
[root@2f5f9417b073 var]# ls /var/volume2
存放内容
[root@2f5f9417b073 var]# echo "this is volume1" > /var/volume1/test1
[root@2f5f9417b073 var]# echo "this is volume2" > /var/volume2/test2
创建data02容器,挂载data01容器中的数据卷并查看内容
[root@langzi01 ~]# docker run -t -i --rm --volumes-from data01 --name data02 centos /bin/bash
[root@127de2f57a5b /]# cat /var/volume1/test1
this is volume1
[root@127de2f57a5b /]# cat /var/volume2/test2
this is volume2
创建data03容器,挂载data02容器中的数据卷并查看内容
[root@langzi01 ~]# docker run -t -i --rm --volumes-from data02 --name data03 centos /bin/bash
[root@06f21b81bf7c /]# cat /var/volume1/test1
this is volume1
[root@06f21b81bf7c /]# cat /var/volume2/test2
this is volume2
完。。
网友评论