原标题:云计算核心技术Docker教程:Docker使用journald日志驱动程序
该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参数,则不会在日志日志中设置相应的键。