Docker 生产环境之日志 - JSON File 日志驱动程序

原文地址

默认情况下,Docker 捕获所有容器的标准输出(和标准错误),并将其写入使用 JSON 格式的文件。这个 JSON 格式用每个行的来源(stdout 或 stderr)及其时间戳注释。每个日志文件都包含只有一个容器的信息。

1. 使用

要使用 json-file 驱动程序作为默认的日志驱动程序,需要设置 daemor.json 文件中的 log-driverlog-opt 关键字为合适的值。这个文件通常在 /etc/docker/(Linux)或 C:\ProgramData\docker\config\daemon.json (Windows)。更多信息参考 daemor.json

下面示例设置日志驱动程序为 json-file 并设置了 max-size 选项。

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

重新启动 Docker 以使更改对新创建的容器生效。现有容器即使重启 Docker 也不会使用新的日志记录配置。

可以在 docker container createdocker run 命令中通过 --log-driver 标志为某个特定容器设置日志驱动程序:

$ docker run \
      --log-driver json-file --log-opt max-size=10m \
      alpine echo hello world

1.1 选项

json-file日志驱动程序支持下面的日志选项:

选项描述示例值
max-size滚动前日志的最大大小。一个正整数加上一个代表测量单位(k,m 或 g)的修饰符。默认为 -1(无限制)。--log-opt max-size=10m
max-file可以存在的最大日志文件数量。如果滚动日志会创建多余文件,则会删除最旧的文件。只有在设置了 max-size 时才有效。一个正整数。 默认为1。--log-opt max-file=3
labels在启动 Docker 守护进程时适用。守护进程接受的日志相关标签的逗号分隔列表。用于高级日志标记选项。--log-opt labels=production_status,geo
env在启动 Docker 守护进程时适用。此守护程序接受的与日志相关的环境变量的逗号分隔列表。用于高级日志标记选项。--log-opt env=os,customer
env-regexenv 类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。`–log-opt env-regex=^(os

1.2 示例

这个例子启动的 alpine 容器最多有 3 个日志文件且每个日志文件不大于 10MB。

$ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值