一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Docker 容器日志驱动配置如何写

时间:2026-09-04 10:06:49 编辑:袖梨 来源:一聚教程网

Docker日志驱动配置分全局和单容器两级:全局通过/etc/docker/daemon.json设置log-driver与log-opts(如json-file、max-size=10m、max-file=3、compress=true),重启Docker后生效;单容器用--log-driver和--log-opt覆盖,默认优先级更低;Compose中在service下设logging字段实现服务级配置。

Docker 容器日志驱动配置分两种粒度:**全局默认配置**(影响所有新创建容器)和**单容器覆盖配置**(启动时指定,优先级更高)。核心是选对驱动、设好参数,避免日志撑爆磁盘。

全局配置:统一管理所有容器(推荐生产环境使用)

编辑 `/etc/docker/daemon.json`,写入 `log-driver` 和 `log-opts`:

{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3", "compress": "true" } }

保存后重启 Docker:`sudo systemctl restart docker`。此后所有未显式指定日志驱动的容器,都会按此规则运行——每个日志文件最大 10MB,最多保留 3 个(含当前),旧日志自动压缩为 `.gz`。

单容器配置:启动时覆盖默认行为

用 `--log-driver` 和 `--log-opt` 直接指定,适合调试或特殊服务:
  1. 用 json-file 并限制大小:`docker run -d --log-driver=json-file --log-opt max-size=5m --log-opt max-file=2 nginx`
  2. 对接 syslog 服务器:`docker run -d --log-driver=syslog --log-opt syslog-address=tcp://10.0.1.5:514 nginx`
  3. 禁用日志(无审计需求时):`docker run -d --log-driver=none alpine sleep 3600`

Docker Compose 中配置日志驱动

在 `docker-compose.yml` 的 service 下添加 `logging` 字段:

version: '3.8' services: app: image: myapp:latest logging: driver: "json-file" options: max-size: "20m" max-file: "5"

该配置只作用于 `app` 服务,不影响其他服务,也无需重启 Docker 守护进程。

常见驱动与适用场景速查

  1. json-file:开发/测试首选,本地可读性强,支持轮转和压缩
  2. syslog:企业已有 rsyslog/syslog-ng 基础设施时,集中归档审计
  3. fluentd:需要结构化转发到 ES/Kafka/对象存储等平台
  4. journald:systemd 系统(如 CentOS/RHEL 8+、Ubuntu 20.04+)原生集成,`journalctl -t container-name` 可查
  5. none:临时任务、批处理作业等无需日志的场景,彻底节省 I/O

热门栏目