最常用方法是使用 json-file 日志驱动配合 max-size 参数控制单个日志文件上限(如"10m"),支持 k/m/g 单位;可临时通过 docker run --log-opt 指定,或在 docker-compose.yml 的 logging.options 中配置,亦可全局设置 daemon.json 实现统一管理。

直接设置单个容器的最大日志文件大小,最常用的方法是使用 json-file 日志驱动配合 max-size 参数。这个参数控制每个日志文件的上限,单位支持 k(KB)、m(MB)、g(GB),例如 "10m" 表示 10MB。
运行容器时临时指定 max-size
适合测试、调试或对个别容器做精细控制:
- 启动新容器时加
--log-opt max-size=10m - 可同时指定
--log-opt max-file=3控制保留几个轮转文件 - 完整示例:
docker run -d --log-driver json-file --log-opt max-size=50m --log-opt max-file=2 nginx
通过 docker-compose.yml 设置
适用于编排环境,配置清晰且可复用:
- 在服务配置中加入
logging区块 -
max-size和max-file都写在options下,值为字符串(带引号) - 示例片段:
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "5"
全局统一设置(推荐生产环境)
修改 Docker 守护进程配置,让所有新建容器自动生效:
- 编辑
/etc/docker/daemon.json,添加或更新以下内容:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
} - 保存后执行
systemctl daemon-reload && systemctl restart docker - 注意:只对重启后新建的容器生效,已有容器需重建才应用
验证和注意事项
确认配置是否起作用:
- 用
docker inspect | grep -A 5 LogConfig查看实际日志配置 - 日志文件路径通常为
/var/lib/docker/containers/<id>/<id>-json.log</id></id> - 单独设
max-size不设max-file时,默认只保留 1 个文件(旧的会被覆盖) - 如果日志已暴涨,清空不能用
rm,应执行cat /dev/null > xxx-json.log或重启容器











