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