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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 将容器日志发送到 STDOUT 和 STDERR 是 Docker 的默认日志行为。实际上,Docker 提供了多种日志机制帮助用户从运行的容器中提取日志信息。这些机制被称作 logging driver。

将容器日志发送到 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

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
Rust 安全 Linux
如何使用Rust进行系统编程?
在 Rust 中,要调用系统调用并与底层 C 函数进行交互,通常会使用 `libc` crate。`libc` 提供了 Rust 到 C 的 FFI(Foreign Function Interface)绑定,允许 Rust 代码调用和使用底层的 C 函数和系统调用。
318 0
|
NoSQL 数据可视化 JavaScript
搭建easy-mock数据模拟服务器
搭建easy-mock数据模拟服务器
搭建easy-mock数据模拟服务器
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
906 0
|
应用服务中间件 nginx Windows
windows下面Nginx日志切割
windows下面Nginx日志切割
485 0
windows下面Nginx日志切割
|
5月前
|
数据采集 人工智能 数据处理
覆盖16省方言的老人语音数据集!SeniorTalk:智源研究院开源全球首个超高龄老年人中文语音数据集
SeniorTalk是由智源研究院与南开大学联合推出的全球首个中文超高龄老年人对话语音数据集,包含202位75岁及以上老年人的55.53小时语音数据,涵盖16个省市的不同地域口音。
594 5
覆盖16省方言的老人语音数据集!SeniorTalk:智源研究院开源全球首个超高龄老年人中文语音数据集
|
Java Docker 微服务
如何使用Docker和Docker Compose部署微服务
【2月更文挑战第12天】
1150 0
|
11月前
|
负载均衡 安全 调度
Docker Swarm集群架构
【10月更文挑战第8天】
296 1
|
10月前
|
Kubernetes 负载均衡 调度
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
793 6
|
11月前
|
Docker 容器
|
11月前
|
网络协议 应用服务中间件 Linux
docker常见报错提示WARNING: IPv4 forwarding is disabled. Networking will not work.或/usr/bin/docker-current:
### 故障与解决方法概览 1. **故障现象**:运行 `docker run -d -P httpd:centos` 时提示“IPv4转发已禁用,网络将无法工作”。 - **解决方法**:通过编辑 `/etc/sysctl.conf` 设置 `net.ipv4.ip_forward=1` 并执行 `sysctl -p` 启用路由转发,然后重启 Docker 服务。
568 0