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

Docker 的默认 logging driver 是 json-file

# docker info |grep 'Logging Driver'Logging Driver: json-file

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

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

我们可以在 Host 的容器目录中找到这个文件,器路径为 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log

比如我们可以查看前面 httpd 容器 json 格式的日志文件。

可以看到 5 条日志记录。

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

none 是 disable 容器日志功能。

syslog 和 journald 是 Linux 上的两种日志管理服务。

awslogssplunk 和 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,使用时请参考官方文档。

下一节我们开始学习 ELK。

书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)相关推荐

  1. 一张表搞懂各种 Docker 监控方案 - 每天5分钟玩转 Docker 容器技术(86)

    前面我们已经介绍了ps/top/stats.Sysdig.Weave Scope.cAdvisor 和 Prometheus 多种容器监控工具和方案,是时候做一个比较了.下面将从五个方面来对比它们之间 ...

  2. k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

    网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...

  3. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  4. Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  5. Neutron 如何支持多种 network provider - 每天5分钟玩转 OpenStack(70)

    Neutron 的架构是非常开放的,可以支持多种 network provider,只要遵循一定的设计原则和规范.本节我们将开始讨论这个主题. 先讨论一个简单的场景:在 Neutorn 中使用 lin ...

  6. Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)

    2019独角兽企业重金招聘Python工程师标准>>> 我们从本章开始讨论 Docker 存储. Docker 为容器提供了两种存放数据的资源: 由 storage driver 管 ...

  7. Docker系列之(一):10分钟玩转Docker

    1.前言 进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下. 2.Docker是什麽 Docker是 ...

  8. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  9. 循序渐进学spring security 第八篇,如何配置密码加密?是否支持多种加密方案?

    文章目录 回顾 密码明文会带来什么问题? 如何加密? PasswordEncoder 加密接口 如何配置? 加密的密码在登录的时候是怎么校验的? 默认的加密是什么? DaoAuthentication ...

最新文章

  1. Vue是如何渲染页面的,渲染过程以及原理代码
  2. tensorflow 语音识别_调研报告|在线语音识别改进方法之序列区分性训练
  3. linux进入vi编辑报错,Linux Vi编辑器的使用及C编程
  4. 扫地机器人湿地_黑五好价 美亚直邮 iRobot Braava 380t 拖地机器人
  5. 快速的APK厂商快速和免费的Andr​​oid应用程序生成器无需编码技巧
  6. 人民币大写金额转换为数字
  7. OpenG数组讲解之Remove Duplicates from 1D Array.vi
  8. 用科学计算器求均值与方差(超详细)(概率论中使用)
  9. 「MacOS鼠标操作技巧」如何设置鼠标”的速度、滚动方向等配置?
  10. 网络安全学习--破解Win7密码
  11. VulnHub-noob打靶记录
  12. 个人微信号二次开发sdk协议,微信个人号开发API接口
  13. js 递归创建文件夹
  14. Excel对整体数据定位相同的背景颜色单元格?
  15. 怎么恢复计算机系统软件,重装系统后软件如何恢复原状
  16. [Leetcode学习-java]Additive Number
  17. Java 中 Integer 源码学习之缓存池了解
  18. 机器人李继红_电力设备
  19. mysql pt监控_技术分享 | MySQL 监控利器之 Pt-Stalk
  20. Null value appeared in non-nullable field java.lang.NullPointerException

热门文章

  1. 实现视图示例_AngularJS控制器,范围和视图教程示例
  2. 使用Adobe Acrobat提取PDF签章图片
  3. 人工智能发展中面临的问题有哪些?
  4. 数据库基础:什么是MySQL?
  5. 开课吧:继承是什么?继承的基础有什么?
  6. 工作总结 2017年8月11日 转换为datatime
  7. SGI版本空间配置器
  8. Linux下强制某登录用户下线
  9. struts 国际化
  10. 【HTML5CSS3进阶学习01】气泡组件的实现