ENGINEERING PLAYBOOK

Docker 日志轮转与磁盘边界

日志轮转需要同时确认当前容器的日志驱动、新建容器默认配置和外部采集器行为。修改 daemon 配置通常只影响之后创建的容器。

适用人群:需要控制 Docker 本地日志磁盘占用并验证轮转生效的运维人员

排查路径

  1. 识别容器当前 logging driver 与日志文件位置。
  2. 检查 daemon 默认配置和单容器覆盖。
  3. 设置 max-size、max-file 并估算上限。
  4. 验证轮转、采集和重启后的行为。

执行步骤

  1. 执行 docker inspect 查看 LogConfig。
  2. 统计容器日志目录占用并按大小排序。
  3. 先在非关键容器验证轮转参数。
  4. 确认采集器能读取轮转后的文件。
  5. 修改默认值后重建目标容器再复核。

可复制命令与示例

查看日志驱动

docker inspect -f '{{json .HostConfig.LogConfig}}' CONTAINER

限制 json-file 日志

{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"3"}}

可复现任务记录

具体错误或任务

容器 json-file 日志持续增长,需确认 max-size 与 max-file 是否真正写入容器配置。

失败信号:宿主机容器日志文件持续增长,docker inspect 中 LogConfig.Config 为空。

最小输入

目标容器名、当前日志驱动、单文件上限 10m、保留 3 个文件。

验证命令或步骤

docker inspect --format '{{json .HostConfig.LogConfig}}' app

预期输出

Type 为 json-file,Config 同时包含 max-size=10m 与 max-file=3。

失败输出

Config 为 {}、仍使用旧容器配置,或守护进程默认值未应用到现有容器。

成功判据

重建目标容器后 inspect 与磁盘文件数量都符合上限,应用日志仍可查询且无 5xx 增长。

本任务常见错误

  • 只改 daemon.json 不重建旧容器
  • 直接删除活跃日志文件
  • 轮转后未验证日志采集链路

资料与适用边界

日志驱动和轮转参数依据 Docker 官方 logging 文档;实际磁盘路径与采集行为由宿主机和驱动决定。

证据块复核日期:2026-09-04

相关站内页面

资料依据与复核边界

资料复核日期:2026-08-29