Docker 守护进程(dockerd)的日志在哪里查看?

Docker 守护进程日志位置因系统而异:systemd 系统用 journalctl -u docker.service;非 systemd 查看 /var/log/docker.log 或 /var/log/messages。本文覆盖各系统的查看方法。

最佳实践
Docker 守护进程(dockerd)的日志在哪里查看?封面

systemd 系统(大多数现代 Linux):用 journalctl -u docker.service 查看。非 systemd 系统:日志在 /var/log/docker.log 或混在 /var/log/messages / /var/log/syslog 中。

各系统的查看方法

# Linux (systemd,最常见)
journalctl -u docker.service -n 100    # 最近 100 行
journalctl -u docker.service -f        # 实时跟踪

# Linux (非 systemd)
tail -n 100 /var/log/docker.log
tail -n 100 /var/log/messages

# macOS (Docker Desktop)
log show --predicate 'process == "Docker"' --last 1h
# 或查看 ~/Library/Containers/com.docker.docker/Data/log/

# Windows (Docker Desktop)
# 日志在 %LOCALAPPDATA%\Docker\log\

自定义守护进程日志配置

编辑 /etc/docker/daemon.json

{
  "log-level": "info",
  "debug": false
}

改完重启 Docker:sudo systemctl restart docker。调试守护进程问题时可临时设 "debug": true

区分两种"Docker 日志"

  • 守护进程日志:dockerd 自身的运行日志(拉镜像、网络、存储驱动等),就是本文内容;
  • 容器日志:每个容器内应用的 stdout/stderr,用 docker logs <容器> 查看,存储在 /var/lib/docker/containers/*/ 下。

观测云对照

容器日志(应用的 stdout/stderr)由观测云 DataKit 自动采集到平台,支持全文检索和告警,不需要到每台机器上翻文件;Docker 守护进程日志可通过 DataKit 的日志文件采集或 journald 采集一并收集。

常见问题(FAQ)

Q:journalctl 里 docker 日志太多怎么过滤?
A:journalctl -u docker.service --since "1 hour ago" 按时间过滤;-p err 只看错误级别。

Q:容器日志文件在哪?
A:默认在 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log,是 JSON 格式,由 Docker 的 json-file 日志驱动管理。

Q:容器日志太占磁盘怎么办?
A:在 daemon.json 中配置 "log-opts": {"max-size": "10m", "max-file": "3"} 限制单个日志文件大小和保留数量;采集到观测云后也可以更早清理本地文件。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台