在使用 Docker 时,合理管理日志是保障系统可观测性和排查问题的关键。以下是核心实践建议:
1. 日志配置标准化 🛠
- 使用
stdout
和stderr
输出日志,确保容器日志与主机日志统一docker run --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3
- 配置
log-driver
为json-file
(默认)或syslog
/gelf
以适配监控需求
2. 集中化日志管理 🧩
- 通过
log-opt
指定日志路径,便于统一收集--log-opt path=/var/lib/docker/containers
- 推荐使用 ELK Stack(Elasticsearch, Logstash, Kibana)或 Prometheus + Grafana 实现可视化分析
点击查看 ELK 集成方案
3. 日志级别控制 📌
- 根据场景设置
--log-level
(支持 debug/info/warning/error/fatal) - 避免在生产环境开启
debug
级别,防止日志膨胀
4. 日志轮转与存储优化 📁
- 设置
max-size
和max-file
控制日志文件大小和数量 - 使用
--log-opt compress
启用压缩减少存储占用 - 定期清理过期日志,避免磁盘满载 ⚠️
5. 安全与权限隔离 🔒
- 限制日志文件的访问权限,避免未授权读取
chmod 644 /var/lib/docker/containers/*/*.log
- 敏感信息(如密码)应通过环境变量或配置文件注入,而非硬编码日志
了解更多请访问 Docker官方文档 或 日志驱动详解