Docker 17
引擎: 管理员指南 | Engine: Admin Guide

JSON文件日志记录驱动程序(引擎) | JSON File logging driver (Engine)

JSON文件日志驱动程序

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

使用

使用json-file驱动程序作为默认日志记录驱动程序,设置log-driverlog-opt控件中的适当值的键。daemon.json文件,该文件位于/etc/docker/在linux主机上或C:\ProgramData\docker\config\daemon.json在WindowsServer上。有关+配置Docker的更多信息,请使用daemon.json,见+daemon.json...

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

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

重新启动Docker以使更改生效。

属性设置特定容器的日志记录驱动程序。--log-driver旗子docker createdocker run*

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

备选方案

json-file日志驱动程序支持以下日志记录选项:

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

*如果max-sizemax-file都准备好了,docker logs只返回最新日志文件中的日志行。

实例

此示例启动一个alpine容器,最多可以有3个日志文件,每个不大于10 MB。

$ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash

json文件码头工具日志记录驱动程序