在使用 Docker 时,合理管理日志是保障系统可观测性和排查问题的关键。以下是核心实践建议:


1. 日志配置标准化 🛠

  • 使用 stdoutstderr 输出日志,确保容器日志与主机日志统一
    docker run --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3
    
  • 配置 log-driverjson-file(默认)或 syslog/gelf 以适配监控需求
    docker_logging

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 级别,防止日志膨胀
    container_logging_level

4. 日志轮转与存储优化 📁

  • 设置 max-sizemax-file 控制日志文件大小和数量
  • 使用 --log-opt compress 启用压缩减少存储占用
  • 定期清理过期日志,避免磁盘满载 ⚠️

5. 安全与权限隔离 🔒

  • 限制日志文件的访问权限,避免未授权读取
    chmod 644 /var/lib/docker/containers/*/*.log
    
  • 敏感信息(如密码)应通过环境变量或配置文件注入,而非硬编码日志

了解更多请访问 Docker官方文档日志驱动详解