【发布时间】:2016-12-15 17:25:40
【问题描述】:
我目前正在尝试了解 Docker 如何处理卷的挂载并遇到以下行为,这对我来说似乎有点奇怪:
假设我们要将 /var/run 目录挂载到容器中(仅作为示例),我们执行以下操作:
$ docker run -i -t -v /var/run:/test ubuntu:latest /bin/bash
到目前为止,一切正常,位于 /var/run 下的所有文件夹和文件都显示在 /test 内的容器内。
现在看看如果我们决定挂载 /var 目录会发生什么:
$ docker run -i -t -v /var:/test ubuntu:latest /bin/bash
不过,/var 中的所有主机文件夹都显示在 /test 中。但是,在 cd into /test/run 之后,不会显示来自主机的文件和目录。换句话说,Docker 似乎没有对后续子目录及其内容进行“递归”挂载。这是普通的 Docker 行为吗?
【问题讨论】:
-
我无法重现此问题,这不是预期的行为。您使用的是什么版本的 docker(以及在哪个操作系统上)?
-
我在 Virtualbox 的 Debian Jessie VM 上运行最新的 Docker 1.12
-
第一个命令例如使我能够在启动的容器中看到 docker.sock,而第二个仅显示 /run dir 下的容器目录。
-
知道了。之前没抓到你。有趣...
-
解释在这里:lists.fedoraproject.org/pipermail/devel/2011-March/150031.html(/run 现在是一个 tmpfs,并且 /var/run 已绑定到它。)我仍在探索这个话题......
标签: docker containers