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
。