4.6 KiB
Configure logging drivers
The container can have a different logging driver than the Docker daemon. Use
the --log-driver=VALUE with the docker run command to configure the
container's logging driver. The following options are supported:
none |
Disables any logging for the container. docker logs won't be available with this driver. |
|---|---|
json-file |
Default logging driver for Docker. Writes JSON messages to file. No logging options are supported for this driver. |
syslog |
Syslog logging driver for Docker. Writes log messages to syslog. |
journald |
Journald logging driver for Docker. Writes log messages to journald. |
gelf |
Graylog Extended Log Format (GELF) logging driver for Docker. Writes log messages to a GELF endpoint likeGraylog or Logstash. |
fluentd |
Fluentd logging driver for Docker. Writes log messages to fluentd (forward input). |
The docker logscommand is available only for the json-file logging driver.
The syslog options
The following logging options are supported for the syslog logging driver:
--log-opt syslog-address=[tcp|udp]://host:port
--log-opt syslog-address=unix://path
--log-opt syslog-facility=daemon
--log-opt syslog-tag="mailer"
syslog-address specifies the remote syslog server address where the driver connects to.
If not specified it defaults to the local unix socket of the running system.
If transport is either tcp or udp and port is not specified it defaults to 514
The following example shows how to have the syslog driver connect to a syslog
remote server at 192.168.0.42 on port 123
$ docker run --log-driver=syslog --log-opt syslog-address=tcp://192.168.0.42:123
The syslog-facility option configures the syslog facility. By default, the system uses the
daemon value. To override this behavior, you can provide an integer of 0 to 23 or any of
the following named facilities:
kernusermaildaemonauthsysloglprnewsuucpcronauthprivftplocal0local1local2local3local4local5local6local7
The syslog-tag specifies a tag that identifies the container's syslog messages. By default,
the system uses the first 12 characters of the container id. To override this behavior, specify
a syslog-tag option
Specify journald options
The journald logging driver sotres the container id in the journal's CONTAINER_ID field. For detailed information on
working with this logging driver, see the journald logging driver
reference documentation.
Specify gelf options
The GELF logging driver supports the following options:
--log-opt gelf-address=udp://host:port
--log-opt gelf-tag="database"
The gelf-address option specifies the remote GELF server address that the
driver connects to. Currently, only udp is supported as the transport and you must
specify a port value. The following example shows how to connect the gelf
driver to a GELF remote server at 192.168.0.42 on port 12201
$ docker run --log-driver=gelf --log-opt gelf-address=udp://192.168.0.42:12201
The gelf-tag option specifies a tag for easy container identification.
Specify fluentd options
You can use the --log-opt NAME=VALUE flag to specify these additional Fluentd logging driver options.
fluentd-address: specifyhost:portto connect [localhost:24224]fluentd-tag: specify tag forfluentdmessage,
When specifying a fluentd-tag value, you can use the following markup tags:
{{.ID}}: short container id (12 characters){{.FullID}}: full container id{{.Name}}: container name
For example, to specify both additional options:
docker run --log-driver=fluentd --log-opt fluentd-address=localhost:24224 --log-opt fluentd-tag=docker.{{.Name}}
If container cannot connect to the Fluentd daemon on the specified address, the container stops immediately. For detailed information on working with this logging driver, see the journald logging driver