【问题标题】:Docker mount namespaceDocker 挂载命名空间
【发布时间】:2016-01-06 22:24:51
【问题描述】:

当我为使用主机文件系统的正在运行的容器挂载 $docker run -v /tmp:/tmp -ti ubuntu /bin/bash 时。当我从 exit 命令关闭上述容器并将上述容器 id 与新的 $docker run --volumes-from="closed container id" -ti ubuntu /bin/bash 链接时,这也使用 /tmp 文件在新运行的容器中。这有可能即使在关闭容器后仍然可以在其他容器中引用。请以更好的方式解释我在 docker 中发生了什么。

【问题讨论】:

  • 我们可以在 docker 中挂载新的开发者吗?

标签: docker


【解决方案1】:

查看容器解决方案的Understanding Volumes in Docker

【讨论】:

  • 当我们使用该镜像为docker挂载时,docker的只读层如何添加读写层?我可以获得在docker镜像上创建读写层的代码sn-p ?
【解决方案2】:

这怎么可能,即使在关闭容器之后,它仍然可以在其他容器中引用。请以更好的方式解释我在 docker 中发生了什么。

这是预期行为,因为您已在第一个实例上映射卷 -v /tmp:/tmp,这意味着您已将主机操作系统上的 /tmp 映射到容器内的 /tmp。现在,您在容器中所做的任何更改都保留在主机操作系统上,除非删除 <container id>,否则第二个或第三个实例可以访问该主机操作系统。

除非使用docker rm <container id> 将其删除,否则该容器存在。您可以从docker ps -a 获取<container id>,它返回所有正在运行且已退出且未删除的容器的列表。

【讨论】:

  • 当我移除容器时,所有的组件/模块都被移除了?
  • 容器中的所有内容都将被删除,除了与主机操作系统共享的共享卷以及文件或目录的内容。
  • 我观察到不同之处在于,当我将 $docker run -v /tmp:/tmp -ti ubuntu /bin/bash 容器 ID 与其他新运行的容器一起提供时。然后我删除了引用的容器,但我可以看到引用容器内的挂载点。内核挂载代码中是否维护了任何引用计数?如何解决?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2018-07-19
  • 2018-08-21
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多