生产环境日志轮转必须通过 Docker 守护进程全局配置,即在 /etc/docker/daemon.json 中统一设置 json-file 驱动、max-size(100m~500m)、max-file(3~5)和 compress: true,重启 docker 后需重建容器生效,并用 docker inspect 和日志目录验证;仅特殊场景可单容器覆盖,同时需应用层结构化输出与敏感信息规避。

生产环境必须统一配置日志轮转,不能依赖单容器临时设置。核心是通过 Docker 守护进程全局控制,再辅以合理参数和验证机制。
用 daemon.json 统一配置日志策略
所有生产节点应在 /etc/docker/daemon.json 中定义默认日志行为,避免逐个容器漏配:
- 设置 json-file 驱动(兼容性好、格式标准)
- 指定 max-size:建议 100m~500m,兼顾可读性与磁盘安全
- 指定 max-file:建议 3~5,保留足够回溯窗口
- 启用 compress: true,降低归档日志磁盘占用
示例配置:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "200m",
"max-file": "4",
"compress": "true"
}
}
修改后执行 sudo systemctl restart docker 生效。注意:已有容器需重建才继承新策略。
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
验证配置是否真正生效
不能只看 daemon.json 是否写对,要确认容器实际加载的配置:
- 运行 docker inspect <容器名>
- 搜索 LogConfig 字段,检查
max-size和max-file值是否匹配预期 - 查看日志目录 /var/lib/docker/containers/<id>/<id>-json.log*,确认文件数量和大小受控
特殊场景下允许单容器覆盖
仅限调试或合规审计等明确需求时使用,不作为常态:
- 启动时加参数:--log-opt max-size=1g --log-opt max-file=10
- 在 docker-compose.yml 中声明 logging → options
- 务必在文档中记录原因和有效期,避免长期漂移
搭配应用层输出增强可观测性
日志轮转只是“存得稳”,还要“查得快”:
- 应用启动时主动打印关键配置摘要,例如:Loaded config: env=prod, log_level=warn
- 结构化输出 JSON 日志(如
{"level":"info","msg":"startup complete"}),方便后续解析 - 避免在日志中打印敏感信息,尤其配合压缩归档时更需谨慎

















