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

记录驱动程序的日志标记(引擎) | Log tags for logging driver (Engine)

日志驱动程序的日志标记

tag选项指定如何格式化标识容器日志消息的标记。默认情况下,系统使用容器id的前12个字符。若要重写此行为,请指定tag备选方案:

$ docker run --log-driver=fluentd --log-opt fluentd-address=myhost.local:24224 --log-opt tag="mailer"

Docker支持在指定标记值时可以使用的一些特殊模板标记:

标记描述
{{.ID}}容器标识的前12个字符。
{{.FullID}}完整的容器ID。
{{.Name}}容器名称。
{{.ImageID}}容器的图像ID的前12个字符。
{{}} .ImageFullID容器的完整图像标识符。
{{}} .ImageName容器使用的图像的名称。
{{.DaemonName}}码头程序(docker)的名称。

例如,指定--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"价值收益率syslog日志行如下:

Aug 7 18:33:19 HOSTNAME hello-world/foobar/5790672ab6a0[9103]: Hello from Docker.

启动时,系统将container_name字段和{{.Name}}在标签上。如果你用docker rename若要重命名容器,新名称不会反映在日志消息中。相反,这些消息继续使用原始容器名称。

对于高级用法,生成的标记的使用GO模板容器的日志上下文...

作为Syslog日志记录器可能实现的一个示例,如果您使用以下命令,您将得到如下输出:

$ docker run -it --rm \ --log-driver syslog \ --log-opt tag="{{ (.ExtraAttributes nil).SOME_ENV_VAR }}" \ --log-opt env=SOME_ENV_VAR \ -e SOME_ENV_VAR=logtester.1234 \ flyinprogrammer/logtester

Apr 1 15:22:17 ip-10-27-39-73 logtester.1234[45499]: + exec app Apr 1 15:22:17 ip-10-27-39-73 logtester.1234[45499]: 2016-04-01 15:22:17.075416751 +0000 UTC stderr msg: 1

码头工人记录驱动系统日志Fluentd艺术journald