docker日志输出文件大小设置以及文件个数限制
问题描述:
今天有同事运行了一个docker容器,不多时就导致宿主机硬盘直接撑爆,消耗了120G,发生的很是突然。
问题排查:
后续查阅资料,发现是因为docker中的某个进程一直在持续输出,而这些输出会记录到docker日志中,日志默认位置在 /var/lib/docker/containers/containeid 目录下面的 containeid-json.log 文件中。执行命令 du -sh *,可以看大 log 文件非常大。
问题避免:
问题源头已经知道了,那么我们如何避免这种情况再发生了,首先我们不能禁止日志输出,那么我们是否可以限制文件的大小呢?
具体操作:
重启容器:
docker run增加如下参数,限制生成的json.log单个文件大小和保留文件个数:--log-opt max-size=100m --log-opt max-file=3
词语解释:
max-size 指定日志文件大小上限
max-file 指定日志文件个数
最终的效果就是,日志会持续生成 3 文件,并一直保留最新的 3 个日志文件。
如下所示:
[root@etcd1 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74]# ll
total 38272
-r--------. 1 root root 8916074 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log
-r--------. 1 root root 10000056 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log.1
-r--------. 1 root root 10000001 Mar 30 18:17 27cccf6078bc114e0af28b8b89927c5768656ffd8764755ec79f9bb322d5ae74-json.log.2
注意点: --log-opt max-size=1m --log-opt max-file= 应该放在 docker run 后面,不可以放在镜像后面执行,这样子会不生效。
PS.内容永远保持 max-file 的最新数据
docker日志输出文件大小设置以及文件个数限制的更多相关文章
- Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容. 但是用这个脚本的同 ...
- Shell 从日志文件中选择时间段内的日志输出到另一个文件
Shell 从日志文件中选择时间段内的日志输出到另一个文件 情况是这样的,某系统的日志全部写在一个日志文件内,所以这个文件非常大,非常长,每次查阅的时候非常的不方便.所以,相关人员希望能够查询某个时间 ...
- Log4j将不同Package的日志输出到不同的文件的方法
随着项目规模的越来越大,会不断的引入新的模块,不同的模块都会打印自己的日志,最后就造成日志根本没法查看,比如我自己的项目中,就存在以下这些日志: 接收外界消息的日志.对外发送消息的日志: 后台常驻线程 ...
- log4j学习(二)不同类的日志输出到不同的文件
目的:一个应用中有两个不同作用的后台服务,我们需要把他们的日志分开,存放到2个不同的日志文件中. 办法:需要在log4j.properties文件中配置两个不同的logger和对应的appender ...
- Log4j将不同Package的日志输出到不同的文件
转自:http://www.crazyant.net/1931.html 随着项目规模的越来越大,会不断的引入新的模块,不同的模块都会打印自己的日志,最后就造成日志根本没法查看,比如我自己的项目中,就 ...
- log4j将日志输出到控制台,文件,邮件
#将日志写到文件 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=e\:\ ...
- log4j2配置按照日志级别将日志输出到不同的文件
背景 在项目中,可能会产生非常多的日志记录,为了方便日志分析,可以将日志按级别输出到指定文件. log4j2.xml配置文件 <!--将info级别的日志单独输出到info.log中--> ...
- docker 日志清理与设置
清空 cat /dev/null >json.log docker-compose nginx: image: nginx:1.12.1 restart: always logging: dri ...
- spark脚本日志输出级别设置
import org.apache.log4j.{ Level, Logger } Logger.getLogger("org").setLevel(Level.WARN) Log ...
随机推荐
- Codeforces Round #510 #A
http://codeforces.com/contest/1042/problem/A 题目大意就是: 现在公园里有n个长椅(要多长有多长),第i个长椅上有a[i]个人(泰山崩于前而不乱),现在又有 ...
- 初遇Linux
Ctrl+Alt+(F1-F6):切换虚拟终端 Ctrl+Alt:鼠标切换界面 $:普通用户登录后系统的提示符 #:root用户登录后系统的提示符 Linux命令 exit 用于退出目前的shell ...
- centos7系统优化
优化说明: 一.关闭selinux 二.更改为阿里yum源 三.提权dm用户可以使用sudo 四.优化ssh远程登录配置 五.设置中文字符集 六.设置时间同步 七.历史记录数及登录超时环境变量设置 八 ...
- RN原生的安卓UI组件
https://facebook.github.io/react-native/docs/native-components-android.html 这里有一大堆的原生组件可以用,一些是平台自带的, ...
- RN调试
https://facebook.github.io/react-native/docs/debugging.html 热加载 RN的目标是极致的开发体验,修改文件后能在1秒内看到变化,通过以下三个特 ...
- Python基础:字典(dict)与集合(set)
查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...
- MPEG-4与H.264的区别 , 编码 以及 应用
MPEG4是适用于监控领域的压缩技术 MPEG4于1998年11月公布,原预计1999 年1月投入使用的国际标准MPEG4不仅是针对一定比特率下的视频.音频编码,更加注重多媒体系统的交互性和灵活性.M ...
- 【HIHOCODER 1323】回文字符串(区间DP)
描述 给定一个字符串 S ,最少需要几次增删改操作可以把 S 变成一个回文字符串? 一次操作可以在任意位置插入一个字符,或者删除任意一个字符,或者把任意一个字符修改成任意其他字符. 输入 字符串 S. ...
- 基于链式链表的栈链式存储的C风格实现
链式链表的头文件与CPP文件见前文 头文件: #ifndef _LINKSTACK_H_ #define _LINKSTACK_H_ typedef void LinkStack; //创建一个栈 L ...
- PAT Basic 1059
1059 C语言竞赛 C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……). ...