首页/云/云与容器速查/容器日志暴涨导致磁盘告警

容器日志暴涨导致磁盘告警

json-file 日志默认无上限:应用刷错误日志时磁盘被迅速写满,进而连累宿主与 Docker 守护进程。先止血(truncate),再配置 max-size 根治。

云与容器速查云更新于 2026-10-12
止血truncate -s 0 <日志文件>(不能 rm:文件句柄还开着)
定位du -sh /var/lib/docker/containers/*/*-json.log | sort -h | tail
根治daemon.json log-opts max-size/max-file;或单容器 --log-opt
应用侧修日志级别与错误循环:日志暴涨往往是故障信号
监控磁盘使用率与日志增速纳入告警

止血与配置

止血与配置
truncate -s 0 /var/lib/docker/containers/<id>/<id>-json.log
# /etc/docker/daemon.json
{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"3"}}
systemctl reload docker
rm 正在写的日志文件不会释放空间(fd 仍指向该 inode):必须 truncate 或先停容器。

易错点

  • rm 日志后 df 没变化:句柄未释放,白删还差点丢现场
  • 只清历史不管上限:下个迭代同样的事故再演一遍

数据来源与参考

  • Docker Docs:json-file logging driver
  • Docker Docs:daemon.json

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌