docker 将应用运行在容器中,应用输出日志就输出到容器中了,访问 docker 应用的日志也变成了访问 docker 容器的日志。要访问容器的日志,需要了解 docker 的日志类型。
日志类型 | 说明 |
journald | docker 默认的日志类型。把所有容器的回显日志输出到系统的 journald 服务中 |
json-file | 把每个容器的回显日志以 json 文件格式输出到每个容器的内部。如果在实际应用中某些应用产生了大量的日志信息,可能导致容器的 json 日志文件过大而占满宿主机的磁盘 |
syslog | 把所有容器的回显日志输出到系统的 syslog 服务中 |
fluentd | 把所有容器的回显日志输出到系统的 fluentd 服务中 |
gelf | 把所有容器的回显日志输出到支持 gelf(graylog extended log format)格式的服务中,如 logstash |
none | 关闭 docker 容器的日志。使用这种方式,意味着无法通过 docker logs 命令查看任何容器输出的日志 |
修改 docker 默认的日志格式
[root@hecs-78089 opt]# vim /etc/docker/daemon.json
{
"log-driver": "json-file"
}
重新加载 docker 服务,重启 docker
systemctl daemon-reload && systemctl restart docker
查看 docker 日志格式
[root@hecs-78089 opt]# docker info | grep Logging
Logging Driver: json-file