本地文件日志记录驱动程序
local
日志驱动程序会捕获来自容器 stdout/stderr 的输出,并将它们写入内部存储,该存储针对性能和磁盘使用进行了优化。
默认情况下,local
驱动程序会为每个容器保留 100 MB 的日志消息,并使用自动压缩来减小磁盘上的大小。100 MB 的默认值基于每个文件 20 MB 的默认大小,以及文件数量的默认值 5(用于记录日志轮换)。
警告
local
日志驱动程序使用基于文件的存储。这些文件旨在由 Docker 守护程序独占访问。使用外部工具与这些文件交互可能会干扰 Docker 的日志系统并导致意外行为,应避免这种情况。
使用
要使用 local
驱动程序作为默认日志驱动程序,请在 daemon.json
文件中将 log-driver
和 log-opt
键设置为适当的值,该文件位于 Linux 主机的 /etc/docker/
中或 Windows Server 的 C:\ProgramData\docker\config\daemon.json
中。有关使用 daemon.json
配置 Docker 的更多信息,请参阅 daemon.json。
以下示例将日志驱动程序设置为 local
并设置 max-size
选项。
{
"log-driver": "local",
"log-opts": {
"max-size": "10m"
}
}
重新启动 Docker 以使更改对新创建的容器生效。现有容器不会自动使用新的日志配置。
您可以使用 --log-driver
标志为 docker container create
或 docker run
设置特定容器的日志驱动程序
$ docker run \
--log-driver local --log-opt max-size=10m \
alpine echo hello world
请注意,local
是 bash 保留关键字,因此您可能需要在脚本中用引号引起来。
选项
local
日志驱动程序支持以下日志选项
选项 | 描述 | 示例值 |
---|---|---|
max-size | 日志在轮换之前的最大大小。正整数加上表示度量单位的修饰符 (k 、m 或 g )。默认为 20m。 | --log-opt max-size=10m |
max-file | 可以存在的日志文件的最大数量。如果轮换日志会创建过多的文件,则会删除最旧的文件。正整数。默认为 5。 | --log-opt max-file=3 |
compress | 切换轮换日志文件的压缩。默认情况下启用。 | --log-opt compress=false |
示例
此示例启动一个 alpine
容器,该容器最多可以有 3 个日志文件,每个文件不超过 10 兆字节。
$ docker run -it --log-driver local --log-opt max-size=10m --log-opt max-file=3 alpine ash