docker数据卷容器挂载不上的解决方法
作者:邈邈c
docker容器之间可以通过相互挂载实现数据共享,本文主要介绍了docker数据卷容器挂载不上的解决方法,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
docker容器之间可以通过相互挂载实现数据共享,被挂载的容器称为 “数据卷容器”
数据卷容器相互挂载前提需要数据卷容器一方通过数据卷挂载在宿主机
docker run -d -v /home --name nginx01 nginx # 将共享文件挂载在容器外部 docker run -d --volumes-from nginx01 --name nginx02 nginx # 将nginx02挂载到nginx01上 # 然后两个容器之间才能实现改文件/home的数据共享,其他文件不会共享 [root@VM-16-3-centos juming]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9a89e09f42c nginx "/docker-entrypoint.…" 14 seconds ago Up 13 seconds 80/tcp nginx02 c9c7db5b91b3 nginx "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp nginx01 # 进入到01 [root@VM-16-3-centos juming]# docker exec -it c9c7db5b91b3 /bin/bash root@c9c7db5b91b3:/# ls bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@c9c7db5b91b3:/# cd home root@c9c7db5b91b3:/home# ls root@c9c7db5b91b3:/home# touch nginx01 root@c9c7db5b91b3:/home# exit # 进入02查看 [root@VM-16-3-centos juming]# docker exec -it a9a89e09f42c /bin/bash root@a9a89e09f42c:/# cd home root@a9a89e09f42c:/home# ls nginx01
在/home外部创建一个文件,没有共享
同时数据卷容器挂载是拷贝方式,父容器删除后子容器还会存在
同时删除后重新的创建01容器,发现与02的挂载关系不存在
进入02后创建一个hhh文件
在容器外的宿主机发现了这个文件 匿名挂载默认在/var/lib/docker/volumes/
结论:容器数据卷挂载方式不是将容器02挂载到01容器下,而是间接的挂载到宿主机
到此这篇关于docker数据卷容器挂载不上的解决方法的文章就介绍到这了,更多相关docker数据卷挂载不上内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!