Docker pid命名空间和主机

时间:2015-10-12 04:35:51

标签: docker

当我们在docker和主机系统中运行相同的进程时,从审计日志的角度来看,它是如何区分彼此的?

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

1 个答案:

答案 0 :(得分:1)

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

我在上一个问题“Docker Namespace in kernel level”中提到,可以从主机上看到在容器中运行的进程的pid。

但是在审计日志方面,您可以configure logging drivers只关注容器,并忽略直接在主机上运行的进程。

例如,在this article中,Mark配置rsyslog以将Docker日志隔离到自己的文件中。

  

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

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

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

这应该足以清楚地区分主机进程日志(在常规syslog中)与在容器中运行的日志(在/var/log/docker.log中)

2016年5月更新:对于docker 1.12,issue 10163 and --pid=container:id已被PR 22481关闭,允许加入另一个容器的PID命名空间。