Docker 日志越滚越大怎么办?给 json-file 加上大小上限

Docker json-file 日志轮转设置示意图

Docker 容器跑久了,有时系统盘空间突然变小。顺着目录查下去,常见结果是某个容器的 *-json.log 一直在增长。

这种情况不要先去手动编辑 Docker 的日志文件。更稳的做法,是给默认的 json-file 日志驱动加上大小上限。

先看当前默认日志驱动:

docker info --format '{{.LoggingDriver}}'

如果输出是 json-file,可以编辑 /etc/docker/daemon.json,加入下面这一段:

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

已经有其它 Docker 配置时,不要直接整段覆盖,只把 log-driverlog-opts 合并进去,保证 JSON 格式正确。

保存后重启 Docker:

sudo systemctl restart docker

生产环境重启 Docker 前,先安排维护窗口,避免正在运行的容器被影响。

上面这个配置的意思是:单个日志文件最多 10MB,最多保留 3 个文件。Docker 官方文档也说明,daemon.json 里的 log-opts 选项值要写成字符串,所以 3 也要加引号。

还有一个容易忽略的点:改完默认配置后,只会影响后续新建的容器。已经在跑的容器不会自动套用新日志规则,需要按你的部署方式重建容器。

如果只想给某个新容器单独设置,也可以在启动时加参数:

docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 alpine echo hello

参考:Docker json-file logging driver 文档

Caleb
Caleb管理员

上一篇:Chrome 每次下载都问保存位置怎么办?关掉这个开关
下一篇:已是最新的文章

留言评论

暂无留言
请先 登录 再评论,若不是会员请先 注册
取消
扫码支持