docker logs
实际上是读取容器运行时的 标准输出(stdout) 和 标准错误(stderr),而这些日志默认会被 Docker 守护进程保存到宿主机的文件里。
📌 默认保存位置
-
在 Linux 系统 下,默认日志驱动是
json-file
。 -
每个容器的日志会保存在:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
-
例如:
/var/lib/docker/containers/fae320d08268/fae320d08268-json.log
-
这个文件就是
docker logs <容器ID>
命令背后读取的来源。
⚠️ 注意事项
-
容器删除后:对应目录和日志文件也会被删除。
-
日志文件可能很大 :如果容器长时间运行且输出很多日志,
json.log
文件会快速膨胀,占满磁盘。 -
解决办法 :可以在
/etc/docker/daemon.json
中配置日志驱动和参数,例如:json{ "log-driver": "json-file", "log-opts": { "max-size": "500m", "max-file": "3" } }
这样每个容器的日志文件最大 500MB,最多保留 3 个文件,超过会自动轮转。
✅ 总结:
docker logs
默认显示的内容,实际存放在宿主机的 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
文件中。