日志驱动配置
Docker 支持多种日志驱动,下面介绍配置方法与使用场景。
默认驱动
Bash
# 默认使用 json-file
docker info | grep "Logging Driver"
# 输出
Logging Driver: json-file
常见日志驱动
json-file(默认)
Bash
# 使用 json-file
docker run -d \
--name my-app \
--log-driver json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
my-app
# 日志存储路径
/var/lib/docker/containers/<id>/<id>-json.log
特点:
- 默认驱动,JSON 格式存储
- 支持
docker logs命令 - 可配置大小限制和轮转
syslog
Bash
# 发送到 syslog
docker run -d \
--name my-app \
--log-driver syslog \
--log-opt syslog-address=udp://192.168.1.100:514 \
my-app
特点:
- 发送到 syslog 服务器
- 集中管理日志
- 不支持
docker logs
journald
Bash
# 发送到 systemd journal
docker run -d \
--name my-app \
--log-driver journald \
my-app
# 查看日志
journalctl CONTAINER_NAME=my-app
特点:
- 集成 systemd journal
- 支持
docker logs - 需要 systemd 支持
none
Bash
# 禁用日志
docker run -d \
--name my-app \
--log-driver none \
my-app
# 不存储任何日志
全局配置
JSON
// /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"labels": "production_status",
"env": "os,customer"
}
}
重启生效:
Bash
sudo systemctl restart docker
驱动对比
| 驱动 | docker logs | 集中管理 | 轮转 | 推荐场景 |
|---|---|---|---|---|
| json-file | ✅ | ❌ | ✅ | 开发/小型 |
| syslog | ❌ | ✅ | 外部 | 生产集中化 |
| journald | ✅ | ✅ | ✅ | systemd 环境 |
| fluentd | ❌ | ✅ | 外部 | ELK 集成 |
| none | ❌ | ❌ | ❌ | 不需要日志 |
高级配置
Bash
# 使用 fluentd 发送到 ELK
docker run -d \
--name my-app \
--log-driver fluentd \
--log-opt fluentd-address=localhost:24224 \
--log-opt tag="docker.my-app" \
my-app
# 使用 awslogs 发送到 AWS CloudWatch
docker run -d \
--name my-app \
--log-driver awslogs \
--log-opt awslogs-group=my-app \
--log-opt awslogs-region=us-east-1 \
my-app
查看日志
Bash
# 使用 docker logs(仅 json-file/journald)
docker logs my-app
docker logs -f my-app
# 使用 journalctl(journald 驱动)
journalctl CONTAINER_NAME=my-app
# 直接查看日志文件(json-file)
tail -f /var/lib/docker/containers/<id>/<id>-json.log
要点总结
- json-file 是默认驱动,支持
docker logs和轮转 - syslog/journald 用于生产环境集中管理
- fluentd/awslogs 集成外部日志系统(ELK、CloudWatch)
/etc/docker/daemon.json配置全局日志驱动- none 驱动禁用日志,适合不需要日志的场景
📝 发现内容有误?点击此处直接编辑