将容器的日志发送到STDOUT和STDERR是docker的默认日志行为。实际上,docker提供了多种日志机制帮助用户从容器中提取日志,这些机制被称为logging driver

 

docker的默认logging driver是json-file

docker info | grep json-file

centos7下安装docker(18.1docker日志---logging driver)

如果容器在启动的时候没有特别指明,就会使用这个默认的logging driver

 

json-file是将日志保存在json文件中,docker负责格式化其内容并输出到STDOUT和STDERR

我们可以在Host的容器目录中找到这个文件,路径为:

centos7下安装docker(18.1docker日志---logging driver)

centos7下安装docker(18.1docker日志---logging driver)

 

 

除了json-file,docker 还支持多种logging driver。完整列表可以查询官方文档:https://docs.docker.com/engine/admin/logging/overview/#supported-logging-drivers

 

centos7下安装docker(18.1docker日志---logging driver)

none:是disable容器日志功能

awslogs,splunk和gcplogs是第三方日志托管服务

gelf和fluentd是两种开源的日志管理方案

容器启动的时候可以通过--log-driver指定使用的logging driver。如果设置docker默认的logging driver,需要修改docker daemon的启动脚本,指定--log-driver参数,比如:

ExecStart-/usr/bin/dockerd -H fd://--log-driver=syslog --log-opt

每种logging driver都有自己的--log-opt,使用时请参考官方文档

 

相关文章:

  • 2021-09-07
  • 2022-02-18
  • 2021-10-01
  • 2021-05-25
猜你喜欢
  • 2021-09-15
  • 2021-12-05
  • 2021-10-27
  • 2022-01-21
  • 2021-10-02
  • 2021-11-18
  • 2020-11-14
相关资源
相似解决方案