启用json-file日志驱动并配置max-size与max-file可有效控制日志体积:max-size限制单个文件大小(如10m),max-file限定轮转文件数量(如3),二者必须配合使用,否则无法实现日志可控。

直接在 Docker 的日志驱动配置中启用 json-file 驱动,并设置 max-size 和 max-file 两个参数,就能有效控制单个容器日志的大小和数量。默认不配置时,日志会持续追加,极易撑爆磁盘。
全局配置(推荐用于生产环境)
修改 Docker 守护进程配置文件 /etc/docker/daemon.json,添加或更新以下内容:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
保存后重启 Docker 服务:
sudo systemctl daemon-reloadsudo systemctl restart docker
⚠️ 注意:该配置只对新创建的容器生效;已运行的容器需重建(stop + rm + run)才能应用新日志策略。
单容器临时配置(适合测试或特定服务)
使用 docker run 启动时通过命令行指定:
-
--log-driver json-file明确启用 JSON 日志驱动 -
--log-opt max-size=10m单个日志文件达到 10MB 就轮转 -
--log-opt max-file=3最多保留 3 个日志文件(含当前正在写的)
示例命令:
docker run -d \ --name myapp \ --log-driver json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ nginx:latest
验证配置是否生效
启动容器后,可检查其实际使用的日志驱动和选项:
- 查看容器日志驱动:
docker inspect myapp | grep -A 5 'LogConfig' - 确认日志文件位置:
ls -lh /var/lib/docker/containers/<container-id>/<container-id>-json.log* - 观察是否出现类似
-json.log.1、-json.log.2的轮转文件
常见误区提醒
仅设 max-size 不够——文件虽不大,但数量无上限,仍可能积累数百个日志文件;max-file 单独设也无效——没有 max-size 触发轮转,就不会生成多个文件。二者必须配合使用。



















