在 Docker 中查看日志的位置和方法取决于你要查看的日志类型(容器日志、Docker 守护进程日志或系统日志)。以下是详细指南:
查看运行中容器的日志
docker logs <容器名或ID> # 查看最新日志
docker logs --tail=100 <容器ID> # 查看最后100行
docker logs -f <容器ID> # 实时跟踪日志(类似tail -f)
日志文件位置
默认情况下,容器日志存储在宿主机的以下路径中(需root权限):
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
bash
docker inspect --format='{{.LogPath}}' <容器ID>
日志驱动配置
如果使用其他日志驱动(如syslog
、journald
),日志位置会变化:
/var/log/syslog
或/var/log/messages
journalctl -u docker
查看Linux系统
bash
journalctl -u docker.service # 查看完整日志
journalctl -u docker -n 100 -f # 查看最后100行并实时跟踪
bash
cat /var/log/upstart/docker.log
Windows系统
Docker Desktop 日志通常在:
%LOCALAPPDATA%\Docker\log\dockerd.log
macOS系统
Docker Desktop 日志可通过 GUI 查看:
Docker Desktop → Troubleshoot → View logs
bash
dmesg | grep docker # 检查内核级错误
cat /var/log/syslog | grep docker
Docker
相关事件。bash
docker inspect <容器ID>
启用Docker调试模式(临时):
dockerd --debug
日志会输出到守护进程日志(如journalctl -u docker
)。
清理日志(如果日志过大):
truncate -s 0 /var/lib/docker/containers/*/*-json.log # 清空所有容器日志
sudo
或切换root用户。docker info | grep Logging
查看当前驱动。/etc/docker/daemon.json
中配置log-opts
的max-size
和max-file
。根据你的具体需求选择对应方法,如果是容器内应用报错,优先使用docker logs
;如果是Docker服务本身问题,检查守护进程日志。