Docker 容器的日志默认存储位置和访问方式如下:
默认存储路径:
Docker 容器日志存储在宿主机的 /var/lib/docker/containers/<container_id>/
目录下,文件名为 <container_id>-json.log
。
(<container_id>
是容器的完整 ID,可通过 docker ps --no-trunc
查看)
日志驱动影响:
路径可能因配置的日志驱动(--log-driver
)不同而变化:
json-file
(默认):上述路径。syslog
/journald
:日志由系统服务管理(如 /var/log/syslog
或 journalctl -u docker
)。awslogs
/gelf
:日志发送到外部服务(如 AWS CloudWatch)。docker logs
命令docker logs <container_name_or_id> # 查看实时日志
docker logs --tail 100 <container_id> # 查看最后100行
docker logs -f <container_id> # 跟踪日志(类似 tail -f)
# 找到容器ID
docker ps --no-trunc
# 进入日志目录(需root权限)
sudo ls /var/lib/docker/containers/<container_id>/
# 查看日志内容
sudo cat /var/lib/docker/containers/<container_id>/<container_id>-json.log
手动清理:
删除日志文件后需重启 Docker 服务(不推荐直接操作文件)。
sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log
自动轮转:
在 /etc/docker/daemon.json
中配置日志大小和轮转策略:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
重启 Docker 生效:
sudo systemctl restart docker
docker inspect <container_id>
查看 LogConfig.Type
确认当前驱动。如有其他需求(如自定义日志路径),可进一步调整 Docker 配置或使用日志收集工具。