我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解docker日志引擎

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解docker日志引擎

这篇文章将为大家详细讲解有关如何理解docker日志引擎,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

docker原生支持众多的日志引擎,适用于各种不同的应用场景,小编对其作一个简单的说明。

Docker日志引擎说明

docker支持的日志引擎如下:

none:关闭docker的回显日志, docker logs 看不到任何输出。使用这种方式也就意味着无法查看任何容器输出的日志。

json-file:把每个容器的回显日志打到每个容器的内部, 形式为json 文件。在实际使用中, 有些容器在启动后有大量的回显日志, 尤其在程序内部报错时打出的日志信息尤其巨大, 很可能会因为某几个容器的json 日志过大而撑爆整个宿主机的磁盘。

syslog:把所有容器的回显日志打到系统的syslog中。

目前harbor私有镜像仓库使用docker-compose方式启动的话,就默认使用的这种方式。将所有容器的日志都集中收集到一个harbor-log的容器中,在执行docker logs的时候会提示"logs" command is supported only for "json-file" and "journald" loggin drivers (got: syslog)。

journald:把所有容器的回显日志打到系统的journald服务中,这是推荐的方式。

fluentd:把所有容器的回显日志打到fluentd服务中。

gelf 把所有容器的回显日志打到支持 GELF(Graylog Extended Log Format) 格式的服务中, 比如Graylog或Logstash。

修改docker日志引擎

修改docker配置文件/etc/docker/daemon.json如下:

{    "log-driver": "journald"}

在容器运行时指定其日志引擎:

docker run --log-driver=journald alpint /bin/sh

journald配置文件说明

# /etc/systemd/jornald.conf示例:

[Journal]#Storage=auto  存储为自动模式, 其他模式有无日志模式, 纯内存模式和纯磁盘模式#Compress=yes  默认启动压缩功能#Seal=yes   默认加密, 日志文件为二进制文件, 无法 vim或tail 查看#SplitMode=uid#SyncIntervalSec=5m#RateLimitIntervalSec=30s#RateLimitBurst=1000#SystemMaxUse=  精确设置日志可以占用的最大磁盘空间#SystemKeepFree=  保证系统剩余的空间大小#SystemMaxFileSize=#SystemMaxFiles=100#RuntimeMaxUse=#RuntimeKeepFree=#RuntimeMaxFileSize=#RuntimeMaxFiles=100#MaxRetentionSec=#MaxFileSec=1month#ForwardToSyslog=no#ForwardToKMsg=no#ForwardToConsole=no#ForwardToWall=yes#TTYPath=/dev/console#MaxLevelStore=debug#MaxLevelSyslog=debug#MaxLevelKMsg=notice#MaxLevelConsole=info#MaxLevelWall=emerg

journald 默认配置下, 默认日志最大限制为所在文件系统容量的 10%

默认配置下, journald 的日志存放在 /var/log/journal 下, 如果该目录在根分区下, 且根分区空间大小为10G, 那么 journald 存放日志最大的大小为1G, 超出1G 后将删除最早的日志

也可以精确指定占用的空间大小:

SystemMaxUse=50M

journalctl基本用法

journalctl 从头查看所有日志journalctl -b 查看本次开机后的所有系统引导日志journalctl -b -1 显示上次开机后的系统引导日志, 以此类推journalctl -f 类似于 tail -f或tailfjournalctl /usr/bin/dockerd 后加程序的绝对路径,可以显示该程序的所有日志信息journalctl -xe systemd 启动程序失败时会提示你使用这个命令查看错误信息, 其中x 表示在日志输出中增加一些解释性的短文本, e表示立即跳转至日志的尾部

journald注意事项

journald配置中,有两个非常重要的优化项目:

ForwardToSyslog=yesForwardToWall=yes

以上两个参数默认都是 yes 意味着 journald 收集日志后还会转发到 syslog 中

由此造成的影响是: journald 虽然可以乖乖的按照上面的配置进行日志的清理, 但是 syslog 却不在 journald 的控制范围之内

在日志量很大的情况下,syslog中的日志量也变得巨大,所以我们需要把上面两个参数的值改为no

重启journald服务

systemctl restart systemd-journald.service

关于如何理解docker日志引擎就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解docker日志引擎

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解docker日志引擎

这篇文章将为大家详细讲解有关如何理解docker日志引擎,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。docker原生支持众多的日志引擎,适用于各种不同的应用场景,小编对其作一个简单的说明。
2023-06-04

如何理解InnoDB引擎

这期内容当中小编将会给大家带来有关如何理解InnoDB引擎,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、综述innodb的物理文件包括系统表空间文件ibdata,用户表空间文件ibd,日志文件ib_l
2023-05-31

Docker容器日志如何查看和清理

这篇文章主要介绍了Docker容器日志如何查看和清理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker容器日志如何查看和清理文章都会有所收获,下面我们一起来看看吧。问题:docker容器日志随着时间变得
2023-07-05

docker logs如何查看docker容器日志

这篇文章将为大家详细讲解有关docker logs如何查看docker容器日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过docker logs命令可以查看容器的日志。命令格式:$ docker l
2023-06-14

docker如何查看实时日志

要查看Docker容器的实时日志,可以使用以下命令:docker logs -f [container_id]其中,-f 参数表示跟随日志输出,实时显示容器的日志。替换 [container_id] 为要查看日志的容器的ID。另外,您也
docker如何查看实时日志
2024-04-03

Docker容器中的Nginx日志管理与分析(如何管理和分析运行在Docker中的Nginx日志?)

Docker容器中的Nginx日志管理和分析至关重要,分为收集、查看和分析三个步骤。常用日志格式包括CLF、ELF和JSON。最佳实践包括日志轮换、压缩和监控。使用Docker日志驱动程序、日志分析工具和命令行命令来管理和分析日志。DockerCompose和自定义日志级别提供了进一步的灵活性。
Docker容器中的Nginx日志管理与分析(如何管理和分析运行在Docker中的Nginx日志?)
2024-04-02

docker日志如何输出到文件

在Docker中,可以使用以下两种方式将日志输出到文件:1. 使用Docker日志驱动(Logging Driver):Docker提供了多种日志驱动,可以将容器的日志输出到不同的目标,包括文件。可以在启动容器时通过`--log-drive
2023-09-28

Java规则引擎easy-rules如何理解

Java规则引擎easy-rules如何理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近在思考一个基于规则进行挑选的技术重构,想通过规则引擎进行实现,借着
2023-06-22

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 安装卷

php小编西瓜今天将为大家介绍如何使用Docker引擎SDK和Golang来运行docker安装卷。Docker是一种流行的容器化平台,而Docker引擎SDK则是与Docker引擎进行交互的API库。Golang是一种强大的编程语言,与D
如何使用 Docker 引擎 SDK 和 Golang 运行 docker 安装卷
2024-02-09

如何理解Linux的系统日志

本篇内容主要讲解“如何理解Linux的系统日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux的系统日志”吧!syslogd & klogd ---------/etc/sy
2023-06-13

docker如何查看运行容器日志

这篇文章主要讲解了“docker如何查看运行容器日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker如何查看运行容器日志”吧!1. 查看运行着的容器docker ps -a2. 查
2023-07-05

如何理解linux Nginx日志脚本

本篇内容主要讲解“如何理解linux Nginx日志脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解linux Nginx日志脚本”吧!任务计划 crontab -l 1 15 * *
2023-06-09

如何理解Python日志系统 Eliot

这篇文章将为大家详细讲解有关如何理解Python日志系统 Eliot,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Eliot 是一个 Python 日志系统,不只是为简单应用程序所设计,更主
2023-06-02

如何理解Java规则引擎Apache Camel 2.9.1

本篇文章为大家展示了如何理解Java规则引擎Apache Camel 2.9.1,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Apache Camel 2.9.1 修复了109个bug。Apache
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录