日志管理
良好的日志管理对于调试和监控容器应用至关重要。
查看日志
# 查看容器日志docker logs container_name
# 实时查看日志docker logs -f container_name
# 查看最后 100 行docker logs --tail 100 container_name
# 查看带时间戳的日志docker logs -t container_name
# 查看特定时间段的日志docker logs --since 2024-01-01 container_namedocker logs --since 1h container_name日志驱动
Docker 支持多种日志驱动:
配置日志驱动
# 使用 json-file(默认)docker run -d --log-driver json-file nginx
# 使用 syslogdocker run -d --log-driver syslog nginx
# 禁用日志docker run -d --log-driver none nginx配置日志选项
docker run -d \ --log-driver json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ nginxDocker Compose 配置
services: web: image: nginx logging: driver: "json-file" options: max-size: "10m" max-file: "3"全局配置
编辑 /etc/docker/daemon.json:
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }}日志聚合
使用 ELK Stack
services: app: image: myapp logging: driver: "fluentd" options: fluentd-address: "localhost:24224"使用 Loki
services: app: image: myapp logging: driver: "loki" options: loki-url: "http://localhost:3100/loki/api/v1/push"最佳实践
- ✅ 设置日志大小限制
- ✅ 限制日志文件数量
- ✅ 使用结构化日志
- ✅ 集中管理日志
- ✅ 定期清理旧日志