Docker的pid命名空间和主机

当我们在docker和host系统中运行同一个进程时,从审计日志的angular度来看它是如何区分的?

我可以在主机系统中查看docker中运行的进程吗?

您不会在docker和host中运行相同的进程(相同的pid),因为容器的目的是提供隔离 (进程和文件系统)

我在你之前的问题“ 内核级别的Docker命名空间 ”中提到,在容器中运行的进程的pid可以从主机上看到。

但是就审计日志而言,您可以configuration日志logging驱动程序以仅跟踪容器,忽略直接在主机上运行的进程。

例如,在本文中 ,Markconfigurationrsyslog以将Docker日志分离到它们自己的文件中。

为此,请创build/etc/rsyslog.d/10-docker.conf并使用您喜欢的文本编辑器将以下内容复制到文件中。

 # Docker logging daemon.* { /var/log/docker.log stop } 

总而言之,这将把守护程序类别的所有日志写入/var/log/docker.log然后停止处理该日志条目,使其不写入系统默认syslog文件。

这应该足以将主机进程日志(在常规系统日志中)与在容器中运行的日志(在/var/log/docker.log )区/var/log/docker.log

Update 2016年5月: 问题10163和--pid=container:id由docker 1.12的PR 22481closures,允许join另一个容器的PID名称空间。