ログドライバー出力のカスタマイズ

ログオプションのtagは、コンテナーのログ出力を識別するためのタグを、どのような書式で出力するかを指定します。 デフォルトでは、コンテナー ID の先頭 12 文字を用います。 この動作を上書きするにはtagオプションを使います。

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

タグの値を指定する際には、特別なテンプレートマークアップの指定がサポートされています。

マークアップ 内容説明
{{.ID}} コンテナーIDの先頭12文字。
{{.FullID}} コンテナーIDの全文字。
{{.Name}} コンテナー名。
{{.ImageID}} コンテナーのイメージIDの先頭12文字。
{{.ImageFullID}} コンテナーのイメージIDの全文字。
{{.ImageName}} コンテナーで用いられているイメージ名。
{{.DaemonName}} Dockerプログラム名 (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によってコンテナー名を変更した場合、ログ出力に新たな名前は反映されません。 ログでは、元々のコンテナー名を用いた出力が行われます。

docker, logging, driver, syslog, Fluentd, gelf, journald