当我们在docker和主机系统中运行相同的进程时,从审计日志的角度来看,它是如何区分彼此的?
我可以在主机系统中查看在docker中运行的进程吗?
答案 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命名空间。