max-files必须与max-size配合使用,控制最多保留的日志文件数量(含当前),仅对json-file驱动生效,修改daemon.json后需重启docker守护进程,且仅影响新创建容器。
在 docker 的 daemon.json 中,通过 log-opts 配置项可以控制容器日志的保留策略,其中 max-files 就是用来设置日志保留文件最大数量的参数。
配置 max-files 控制日志轮转文件数
该参数需配合 max-size 一起使用,共同实现日志轮转(log rotation)。Docker 默认使用 json-file 日志驱动,它支持按大小切分日志并限制保留的旧日志文件数量。
-
max-size:单个日志文件的最大大小(如"10m"、"100k") -
max-files:最多保留多少个日志文件(含当前正在写的那个),超出后最老的会被删除
daemon.json 示例配置
编辑 /etc/docker/daemon.json(Linux)或 %ProgramData%\Docker\config\daemon.json(Windows),添加或修改 log-driver 和 log-opts:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-files": "3"
}
}
上述配置表示:每个容器日志单个文件不超过 10MB,最多保留 3 个日志文件(例如 myapp-json.log、myapp-json.log.1、myapp-json.log.2)。
生效与验证方式
修改后需重启 Docker daemon 才能生效:
- Linux:
sudo systemctl restart docker - Windows(WSL2 或 Desktop):重启 Docker Desktop 或运行
Restart-Service docker
验证是否生效:启动一个新容器后,查看其日志驱动配置:docker inspect <container-id> | grep -A 5 LogConfig</container-id>
确认输出中包含 "max-files": "3" 等字段。
注意事项
max-files 对已运行的容器不立即生效,只对新创建的容器起作用。若要让已有容器也应用新策略,需先停止、删除再重新运行(或用 docker commit + docker run 替换)。
如果使用其他日志驱动(如 syslog、fluentd),max-files 和 max-size 不可用,需由对应后端服务管理日志生命周期。











