欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2022-10-19 23:45:55
Docker 生产环境之日志 - JSON File 日志驱动程序。 默认情况下,Docker 捕获所有容器的标准输出(和标准错误),并将其写入使用 JSON 格式的文件。这个...

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

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

1. 使用

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

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

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

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

可以在 docker container create 或 docker 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-regex env 类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。 `–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