Docker 的系统日志存储位置取决于你使用的操作系统和日志驱动配置。以下是不同场景下的查找方法:
Systemd 系统(大多数现代 Linux 发行版):
journalctl -u docker.service --no-pager -n 50 # 查看最近50行日志
或持久化到文件:
journalctl -u docker.service > docker.log
非 Systemd 系统(如旧版 Debian/Ubuntu):
cat /var/log/upstart/docker.log
powershell
Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddDays(-1) | Format-Table -AutoSize
或通过 Windows 事件查看器手动查看 应用程序
日志,筛选来源为 Docker
。
Docker Desktop 的日志通过 GUI 查看: - 点击菜单栏 Docker 图标 → Troubleshoot → View logs。
默认情况下,容器日志存储在宿主机的 json-file
中,路径为:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
查看方法:
# 1. 获取容器ID
docker ps -a
# 2. 直接查看日志(无需手动找路径)
docker logs <容器ID>
# 3. 跟踪实时日志
docker logs -f <容器ID>
如果容器使用了其他日志驱动(如 syslog
、journald
),需根据驱动类型查找:
- Syslog:查看 /var/log/syslog
或 /var/log/messages
。
- Journald:使用 journalctl -u docker CONTAINER_NAME=<容器名>
。
记录所有 Docker 操作(如启动/停止容器):
docker events --since '2024-01-01'
日志类型 | 路径(Linux) |
---|---|
守护进程日志 | /var/log/docker.log (部分系统) |
容器日志(默认) | /var/lib/docker/containers/*/*.log |
卷/网络操作日志 | Docker 守护进程日志中记录 |
日志太大导致磁盘占满
限制容器日志大小:
docker run --log-opt max-size=10m --log-opt max-file=3 nginx
修改默认日志驱动
编辑 /etc/docker/daemon.json
:
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
重启 Docker:systemctl restart docker
。
通过以上方法,你可以快速定位 Docker 相关的日志信息。如果需要进一步分析,可以结合工具如 grep
、awk
或日志聚合系统(ELK/Splunk)。