云计算核心技术Docker教程:Docker使用journald日志驱动程序

2022-11-02

该journald日志驱动程序发送容器日志的 systemd日记。可以使用该journalctl命令、通过使用 journalAPI 或使用该docker logs命令来检索日志条目。

除了日志消息本身的文本之外,journald日志驱动程序还将以下元数据与每条消息一起存储在日志中:

参数                    描述

CONTAINER_ID 容器 ID 被截断为 12 个字符。

CONTAINER_ID_FULL 完整的 64 个字符的容器 ID。

CONTAINER_NAME 启动时的容器名称。如果您使用docker rename重命名容器,则新名称不会反映在日记帐分录中。

CONTAINER_TAG, SYSLOG_IDENTIFIER 容器标签(日志标签选项文档)。

CONTAINER_PARTIAL_MESSAGE 标记日志完整性的字段。改进长日志行的记录。

用法

要将journald驱动程序用作默认日志记录驱动程序,请将log-driver 和log-opt键设置为daemon.json文件中的适当值,该文件位于/etc/docker/Linux 主机或 C:\ProgramData\docker\config\daemon.jsonWindows 服务器上。有关使用 配置 Docker 的更多信息daemon.json,请参阅 daemon.json。

以下示例将日志驱动程序设置为journald:

{

“log-driver”: “journald”

}

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

要为特定容器配置日志驱动程序,请使用命令中的–log-driver 标志docker run。

$ docker run –log-driver=journald …

选项

使用该–log-opt NAME=VALUE标志指定其他journald日志驱动程序选项。

选项    是否必需           描述

tag     可选的 在日志日志中指定要设置的模板CONTAINER_TAG和SYSLOG_IDENTIFIER值。请参阅日志标签选项文档以自定义日志标签格式。

labels   可选的 逗号分隔的标签键列表,如果这些标签是为容器指定的,则应包含在消息中。

labels-regex     可选的 与标签相似并兼容。匹配日志相关标签的正则表达式。用于高级 日志标签选项。

env       可选的 逗号分隔的环境变量键列表,如果这些变量是为容器指定的,则应包含在消息中。

env-regex        可选的 与 env 相似并兼容。匹配与日志相关的环境变量的正则表达式。用于高级 日志标签选项。

如果 label 和 env 键之间发生冲突,则 env 的值优先。每个选项都会向日志消息的属性添加附加字段。

以下是登录到 journald 所需的日志记录选项示例。

$ docker run \

–log-driver=journald \

–log-opt labels=location \

–log-opt env=TEST \

–env “TEST=false” \

–label location=west \

your/application

此配置还指示驱动程序在负载中包含标签位置和环境变量 TEST。如果省略–env “TEST=false” 或–label location=west参数,则不会在日志日志中设置相应的键。

您好!请登录

点击取消回复