docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker数据卷挂载不上

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数据卷挂载不上内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文