您的位置:首页 > 运维架构 > Docker

【Docker容器的数据管理】-【Docker数据卷容器】- 挂在数据卷容器的方法

2017-07-03 03:15 936 查看
 

Docker数据卷容器-挂在数据卷容器的方法

 

 

 

启动一个容器dvt4,作为数据卷容器

root@ubuntu:~#docker run -it --name dvt4 dvt

root@d871b4161237:/# ls

bin boot  datavolume1  datavolume2 dev  etc  home lib  lib64  media mnt  opt  proc root  run  sbin srv  sys  tmp usr  var

 

#写入一个文件dvt4_1

root@d871b4161237:/# touch /datavolume1/dvt4_1

#查看文件

root@d871b4161237:/# ls /datavolume1

dvt4_1

root@d871b4161237:/# exit

root@ubuntu:~#

 

 

 

 

 

 

启动一个容器dvt5来挂在我们刚刚创建的数据卷容器dvt4

root@ubuntu:~# docker run -it --name dvt5--volumes-from dvt4 ubuntu /bin/bash

root@463ddf73907d:/# ls

bin boot  datavolume1  datavolume2 dev  etc  home lib  lib64  media mnt  opt  proc  root  run sbin  srv  sys tmp  usr  var

root@463ddf73907d:/# ls /datavolume1

dvt4_1

root@463ddf73907d:/#

root@463ddf73907d:/#touch /datavolume1/dvt5_1

root@463ddf73907d:/# ls /datavolume1

dvt4_1 dvt5_1

root@463ddf73907d:/#

root@463ddf73907d:/# exit

exit

root@ubuntu:~#

 

 

 

启动一个容器dvt6挂载数据卷容器dvt4

root@ubuntu:~#docker run -it --name dvt6 --volumes-from dvt4 ubuntu /bin/bash

root@e91c3a60830b:/# ls

bin boot  datavolume1  datavolume2 dev  etc  home lib  lib64  media mnt  opt  proc root  run  sbin srv  sys  tmp usr  var

root@e91c3a60830b:/# ls /datavolume1

dvt4_1  dvt5_1

root@e91c3a60830b:/#

root@e91c3a60830b:/# exit

exit

root@ubuntu:~#

 

 

 

 

查看容器dvt5和dvt6的数据卷信息

root@ubuntu:~#docker inspect --format="{{.Volumes}}" dvt5

map[/datavolume1:/var/lib/docker/vfs/dir/e07075e7acc1f048a1c67b10f1a70fc514a9c32cca8f0461fd9db418dfaf655f/datavolume2:/var/lib/docker/vfs/dir/f760160b6339c855d56b66626d9f5952506b51824cc1eba2406d893d167cbc78]

root@ubuntu:~#docker inspect --format="{{.Volumes}}" dvt6

map[/datavolume1:/var/lib/docker/vfs/dir/e07075e7acc1f048a1c67b10f1a70fc514a9c32cca8f0461fd9db418dfaf655f/datavolume2:/var/lib/docker/vfs/dir/f760160b6339c855d56b66626d9f5952506b51824cc1eba2406d893d167cbc78]

root@ubuntu:~#

说明:

       1)发现容器dvt5和dvt6的数据卷信息是同一个;

       2)实现的数据卷共享;

 

 

 

 

 

删除数据卷容器dvt4

root@ubuntu:~#docker rm dvt4

dvt4

重启容器dvt5

root@ubuntu:~#docker restart dvt5

dvt5

root@ubuntu:~#docker attach dvt5

root@463ddf73907d:/# ls

bin boot  datavolume1  datavolume2 dev  dvt5_2  etc home  lib  lib64 media  mnt  opt proc  root  run sbin  srv  sys tmp  usr  var

root@463ddf73907d:/#touch datavolume1/dvt5_2_1

root@463ddf73907d:/#ls datavolume1/

dvt4_1  dvt5_1 dvt5_2  dvt5_2_1

root@463ddf73907d:/# exit

exit

root@ubuntu:~#

说明:

       1)删除数据卷容器dvt4;

       2)重启容器dvt5;

       3)进入容器dvt5,依旧可以访问数据卷;

       4)说明数据卷,只是一个传递的作用;

 

 

 

 

启动一个数据卷容器dvt8

root@ubuntu:~#docker run --name dvt8 dvt

 

 

启动一个容器dvt9挂在数据卷容器dvt8

root@ubuntu:~#docker run --name dvt9 -it --volumes-from dvt8 ubuntu /bin/bash

root@13f39fc4e69b:/# ls

bin boot  datavolume1  datavolume2 dev  etc  home lib  lib64  media mnt  opt  proc root  run  sbin srv  sys  tmp usr  var

root@13f39fc4e69b:/#touch /datavolume1/dvt9_1

root@13f39fc4e69b:/# ls /datavolume1

dvt9_1

root@13f39fc4e69b:/#

root@13f39fc4e69b:/# exit

exit

root@ubuntu:~#

 

 

删除数据卷容器dvt8,同时加入-v

root@ubuntu:~#docker rm -v dvt8

dvt8

root@ubuntu:~#

说明:

       1)删除容器,加入-v,说明删除容器同时删除数据卷;

 

 

 

重启容器dvt9并访问

root@ubuntu:~#docker restart dvt9

root@ubuntu:~#docker attach dvt9

root@13f39fc4e69b:/# ls

bin boot  datavolume1  datavolume2 dev  etc  home lib  lib64  media mnt  opt  proc root  run  sbin srv  sys  tmp usr  var

root@13f39fc4e69b:/#touch datavolume1/dvt9_2

root@13f39fc4e69b:/# ls datavolume1

dvt9_1 dvt9_2

root@13f39fc4e69b:/#

说明:

       1)删除了数据卷容器和对应的数据卷后;

       2)发现容器依旧可以访问数据卷;

       3)这是因为如果还有一个容器在使用数据卷,然么它依然有效;

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: