Docker 守护进程正在写入系统日志,但为什么

Docker daemon writing to syslog but why

我是 运行 docker CE 设置,根据 docker info,活动记录器是 json-file。然而,我的系统日志中充斥着关于 NetworDB

的日志
Aug 21 23:45:17 myhost dockerd[859]: time="2019-08-21T23:45:17.488796292+02:00" level=info msg="NetworkDB stats myhost(68894b27f787) - netID:tm84fou4w4x98tgpqv19femay leaving:false netPeers:1 entries:6 Queue qLen:0 netMsg/s:0"

这条消息来自哪里?我该如何配置/禁用它?

您在docker info中看到的活动记录器是指用于收集容器日志的日志驱动程序。您看到的是来自 dockerd 本身的日志消息。

假设您的 dockerdsystemd 启动,日志显示在系统日志中,因为 dockerd 将它们写入 stdout/stderr 并且 systemd 收集输出并将其写入到系统日志。你有一些机制来处理这个问题:

  • 通过设置 --log-level 命令行选项减少 Docker 的日志记录冗长程度:

    dockerd --log-level=warn ...
    

    (您可能需要修改 docker.service 单元以添加此参数,最好通过使用 drop-in 配置文件)。

  • 您可以通过在 docker.service 单元中设置 StandardOutput 参数来将日志重定向到文件(使用上述插入)。

  • 您可以使用具有过滤功能的 syslog 守护程序(如 syslog-ng 或 rsyslog)来抑制消息或将它们重定向到与主日志不同的文件。

就我个人而言,我不会为以上任何问题而烦恼:dockerd 的日志输出不太可能导致真正的问题,如果突然出现问题,最好有太多日志而不是不够