docker和主机之间的PID映射

docker命名空间和host命名空间是不同的,以及这两个pid可以如何映射? 任何人都可以给我一个想法,有助于使主机ndocker之间使用源代码映射pid的简单方法吗?

正如我在“ 安全运行docker工人 ”中所提到的:

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

事实上,正如我在前面的问题“ 内核级别的Docker命名空间 ”中提到的那样,容器pid与主机是隔离的(除非您使用--pid host运行它们)。

如果你正在使用--pid=host ,那么这些容器pid在主机上是可见的,但不容易匹配到特定容器,直到问题10163和--pid=container:id被parsing。

2016年5月更新: 问题10163和--pid=container:id实际上由PR 22481parsing为docker 1.12,允许join另一个容器的PID名称空间。

您可以在/proc/PID/status文件中find映射。 它包含一行:

 NSpid: 16950 24 

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