即使log-driver = json-file,Docker也会写入syslog

时间:2018-01-23 13:42:06

标签: docker logging

我在单元文件中设置了docker run命令,如:

docker run ... \
          --log-driver=json-file \
          --log-opt max-size=10m \
          --log-opt max-file=10 \
...

..到目前为止工作(docker logs命令工作,日志文件在那里,docker inspect显示给定的配置)。

但是容器仍然写入/ var / log / syslog(我要禁用它)。 如何禁用此行为?

Docker版本:1.10.3

Ubuntu:15.04

(是的,我知道 - 现在版本不在我手中。虽然安排了更新)

2 个答案:

答案 0 :(得分:1)

如果容器inspect显示正在使用json日志记录驱动程序,并且您看到日志显示在/var/lib/docker/containers/*/*-json.log中,则docker正在按预期使用json日志驱动程序。

您可能还有其他东西将您的docker日志转发到syslog。像logspout这样的工具可用于执行此转发。如果该工具本身在容器中运行,那么您将看到它将/ var / lib / docker / containers作为卷挂载。

另一种可能性是你运行了多个容器,一个写入syslog,另一个写入json。

无论哪种方式,根据提供的详细信息,您都可以正确设置泊坞窗,并且问题在上述配置的外部。

答案 1 :(得分:0)

供参考:

这是journald-config,而不是Docker本身将消息写入syslog。

要解决此问题,我只需设置

即可
MaxLevelSyslog=err
/etc/systemd/journald.conf中的

,它将写入syslog的消息限制为错误及以下(crit,alert,emerg)