docker和host之间的PID映射

Sow*_*a K 6 kernel pid docker

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

Mit*_*tar 7

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

NSpid:  16950   24
Run Code Online (Sandbox Code Playgroud)

这意味着16950主机24位于容器内部.


Von*_*onC 5

正如我在" 安全地运行docker "中提到的那样:

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

默认情况下,正如我在上一个问题" 内核级别的Docker命名空间 "中提到的那样,容器pid与主机隔离(除非你运行它们--pid host)是设计的.

如果您正在使用--pid=host,那么这些容器pid在主机中是可见的,但不容易与特定容器匹配,直到问题10163并且--pid=container:id已解决.

2016年5月更新: 问题10163,--pid=container:id实际上由PR 22481解决了docker 1.12,允许加入另一个容器的PID命名空间.