首页/云/Docker 容器速查/每容器日志驱动与轮转参数
基础命令50 条

每容器日志驱动与轮转参数

创建容器时用 --log-driver 与 --log-opt 定义日志去向与轮转:max-size/max-file 控制单文件大小与份数,是防止日志写满磁盘的常规手段。

Docker 容器速查云更新于 2026-10-13

日志驱动与轮转参数

创建容器时决定日志去哪、留多少。默认的本地文件驱动不限制大小,一个刷屏的服务可以在一周内把宿主磁盘写满,随后引发一连串看似无关的故障。给每个容器设定单文件大小与保留份数,是最省事的一道护栏。

基本信息

驱动参数指定日志驱动,常用本地文件类驱动
轮转参数单文件大小上限与保留文件份数
默认情况本地文件驱动,不限制大小与份数
全局默认可在引擎配置里设默认值,只对新创建的容器生效
更改限制已运行的容器无法在线修改,需要重建

典型使用场景

  • 高频输出服务:请求量大、日志刷屏的服务必须限制大小
  • 多服务混部:单机跑多个容器时为每个容器设定上限,避免互相挤占磁盘
  • 临时调试容器:不希望日志落地占空间时选择丢弃类驱动或限制份数
  • 统一规范:在引擎配置里设默认值,新容器自动继承
  • 排障期临时放宽:需要长窗口日志时临时调整参数,事后恢复

常用示例

常用示例
docker run -d --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 nginx:1.27-alpine  # 限制大小与份数
docker run -d --log-driver local --log-opt max-size=10m app/api:v1.2   # 使用本地驱动
docker inspect -f '{{.HostConfig.LogConfig.Type}} {{.HostConfig.LogConfig.Config}}' web  # 核对配置
docker system df                                                       # 观察磁盘变化

常见驱动对照

驱动日志去向取日志方式
本地文件类驱动宿主数据目录下的文件可直接用日志命令读取
系统日志类驱动交给宿主系统日志服务通过系统日志工具查看
集中采集类驱动发送到远端收集服务在采集平台查询
丢弃类驱动不保存无法读取,排障前先确认驱动类型
本地压缩驱动宿主上的紧凑格式文件可直接读取,适合高输出量服务

配置时的注意点

  • 轮转参数只在创建容器时生效,事后调整需要重建容器
  • 全局默认值不影响已有容器,改完记得处理存量实例
  • 集中采集类驱动下本地取不到日志,排障要换到采集平台
  • 丢弃类驱动会让排障无从下手,除明确不需要日志的场景外不要使用
  • 轮转后旧文件会被删除,需要长期留存的日志要事先采集出去
本地文件类驱动默认不轮转,长期运行的容器会把宿主磁盘写满。磁盘写满会同时导致数据库、编排组件与其他服务异常,排查线索很容易被误导到别处。
集中采集类驱动与本地读取是互斥的:配置了远端采集后本地往往读不到内容,排障思路要同步切换。

易错点

  • 没设轮转参数导致日志写满宿主磁盘,一连串服务异常却找不到根因
  • 只在个别容器上设了限制,其他容器照旧无限增长,告警依旧会出现
  • 用了丢弃类驱动,出问题时完全没有日志可看
  • 在引擎配置里改了默认值以为全局生效,存量容器仍用旧配置

数据来源与参考

  • Docker 官方文档:日志驱动与配置(docs.docker.com/config/containers/logging)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌