最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Docker Compose 如何配置日志轮转防止磁盘占满
时间:2026-08-26 08:22:49 编辑:袖梨 来源:一聚教程网
在 docker-compose.yml 中配置 logging 为 json-file 驱动并显式设置 max-size 和 max-file 参数,可实现轻量可靠日志轮转;需重建容器生效,支持可选 compress 压缩以节省磁盘空间。
直接在 docker-compose.yml 里配好 logging,是最轻量、最可靠的方式。不用改宿主机系统,也不依赖额外组件,改完重建容器就生效。
明确指定 json-file 驱动
Docker Compose 默认用的就是 json-file,但它不自动启用轮转——必须显式写出来,避免某些旧版本 fallback 到无限制行为。
- 确保每个服务下都有
logging区块 -
driver必须设为"json-file"(注意加英文双引号) - 别写成
local、syslog或留空
设置轮转大小和数量
两个参数必须一起用,缺一不可:
-
max-size: "10m":单个日志文件最大 10MB,建议范围 5m~50m,兼顾可读性与磁盘压力 -
max-file: "3":最多保留 3 个日志文件(当前 + 2 个历史),超出自动删最旧的
例如一个高输出服务可设 max-size: "50m" + max-file: "5",总占用上限约 250MB。
修改后必须重建容器
配置不是热加载,docker-compose up 不会重载日志设置,只有重建才生效:
- 运行
docker-compose down停止旧容器 - 再执行
docker-compose up -d启动新容器 - 验证是否生效:
docker inspect <容器名> | grep -A 5 LogConfig,看输出里是否有对应参数
进阶:加压缩节省空间
如果磁盘特别紧张,可以开启日志压缩:
- 在
options下加一行:compress: "true" - 轮转后的旧日志会自动用 gzip 压缩,通常能减少 60%~80% 空间占用
- 不影响
docker logs查看,Docker 会自动解压