全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 5 分钟 ✍️ juanwangdev

日志驱动配置

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外部生产集中化
journaldsystemd 环境
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 驱动禁用日志,适合不需要日志的场景

📝 发现内容有误?点击此处直接编辑

← 上一篇 日志轮转与大小控制
下一篇 → Docker Hub 认证推送
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库