JSON文件记录驱动程序
预计阅读时间:3分钟
默认情况下,Docker捕获所有容器的标准输出(和标准错误),并使用JSON格式将它们写入文件中。JSON格式使用其原点(stdout
或stderr
)和其时间戳来注释每一行。每个日志文件仅包含有关一个容器的信息。
{"log":"Log line is here\n","stream":"stdout","time":"2019-01-01T11:11:11.111111111Z"}
警告
该
json-file
日志驱动程序使用基于文件的存储。这些文件旨在由Docker守护程序独家访问。使用外部工具与这些文件进行交互可能会干扰Docker的日志记录系统并导致意外行为,因此应避免使用。
用法
要将json-file
驱动程序用作默认的日志记录驱动程序,请在Linux主机或Windows Server上
的文件中将log-driver
和log-opts
键设置为适当的值。有关使用来配置Docker的更多信息,请参阅
daemon.json。daemon.json
/etc/docker/
C:\ProgramData\docker\config\
daemon.json
以下示例将日志驱动程序json-file
设置为,max-size
并将和max-file
选项设置为启用自动日志旋转。
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
笔记
log-opts
配置daemon.json
文件中的配置选项必须以字符串形式提供。因此,布尔值和数值(max-file
例如上面示例中的值 )必须用引号("
)括起来。
重新启动Docker,以使更改对新创建的容器生效。现有容器不使用新的日志记录配置。
您可以使用或--log-driver
标记来设置特定容器的日志记录驱动程序
:docker container create
docker run
$ docker run \
--log-driver json-file --log-opt max-size=10m \
alpine echo hello world
选项
该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 |
labels-regex |
与相似并兼容labels 。与记录相关标签匹配的正则表达式。用于高级日志标签选项。 |
--log-opt labels-regex=^(production_status|geo) |
env |
在启动Docker守护程序时适用。该守护程序接受的与日志记录相关的环境变量的逗号分隔列表。用于高级日志标签选项。 | --log-opt env=os,customer |
env-regex |
与相似并兼容env 。用于匹配与日志记录相关的环境变量的正则表达式。用于高级日志标签选项。 |
--log-opt env-regex=^(os|customer) |
compress |
切换旋转日志的压缩。默认值为disabled 。 |
--log-opt compress=true |
例子
本示例将启动一个alpine
容器,该容器最多可以包含3个日志文件,每个文件不大于10 MB。
$ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash