docker和host

时间:2015-10-25 10:52:19

标签: docker kernel pid

docker命名空间如何与Host命名空间不同以及如何在这两者之间映射pid?任何人都可以给我一个想法,有助于使用源代码轻松地在主机n docker之间映射pid吗?

2 个答案:

答案 0 :(得分:6)

您可以在/proc/PID/status文件中找到该映射。它包含如下行:

NSpid:  16950   24

这意味着主机上的16950在容器内是24

答案 1 :(得分:5)

正如我在" Running docker securely"中提到的那样:

  

目前,Docker使用五个名称空间来改变系统的进程视图:进程,网络,装载,主机名,共享内存。

默认情况下,正如我在上一个问题中所提到的那样#34; Docker Namespace in kernel level"容器pid与主机隔离(除非你用--pid host运行它们)是设计的。

如果您使用的是--pid=host,那么这些容器pid在主机中是可见的,但不容易与特定容器匹配,直到issue 10163 and --pid=container:id被解析。

2016年5月更新:issue 10163 and --pid=container:id实际上已由PR 22481解析为docker 1.12,允许加入另一个容器的PID命名空间。