Docker 日志自动轮转和清理配置
设置 Docker 日志大小和自动删除旧日志:通过配置 Docker 使用 json-file 日志驱动,同时使用 logrotate 工具,可以设置日志的最大大小(例如100MB),并在达到该大小时自动删除旧日志。这可帮助管理 Docker 日志文件大小和保持存储空间整洁。
步骤 1:配置 Docker 日志驱动
在 Docker 的配置文件中,通常是 /etc/docker/daemon.json,可以指定使用 json-file 日志驱动并设置日志的最大大小。编辑配置文件并添加以下内容:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
}
}
- max-size:指定日志文件的最大大小,这里设置为 100MB。
- max-file:指定保留的旧日志文件数,这里设置为 10。
保存配置文件并重新启动 Docker 服务以应用更改:
sudo systemctl daemon-reload && systemctl restart docker
步骤 2:安装和配置 logrotate
现在,需要安装和配置 logrotate 工具,以定期轮转 Docker 日志文件。在大多数 Linux 发行版中,logrotate 工具已经安装。可以使用以下命令来编辑 logrotate 配置文件:
sudo nano /etc/logrotate.conf
在配置文件中,可以添加一个新的日志轮转配置,以定期清理 Docker 日志文件:
/path/to/docker/containers/*/*.log {
missingok
weekly
rotate 10
size 100M
compress
delaycompress
notifempty
copytruncate
}
- /path/to/docker/containers//.log:这是 Docker 日志文件的默认存储位置。确保路径与的系统中的实际路径匹配。
- weekly:日志轮转周期,这里设置为每周。
- rotate 10:保留的旧日志文件数,与 Docker 日志驱动配置的 max-file 一致。
- size 100M:日志文件大小达到 100MB 时触发轮转。
- compress:启用压缩旧日志。
- delaycompress:在压缩之前保留一个未压缩的副本。
- notifempty:仅在日志文件非空时轮转。
- copytruncate:使用 copytruncate 选项避免中断正在写入的日志文件。
保存配置文件并测试 logrotate:
sudo logrotate -d /etc/logrotate.conf
这将模拟日志轮转并显示轮转操作的详细信息。如果一切正常,可以将其设置为定期自动运行:
sudo logrotate -f /etc/logrotate.conf
现在,Docker 日志将根据配置定期轮转,并在达到指定的最大大小时删除旧日志。
步骤 3:编辑 Cron 作业
打开 cron 配置文件以编辑 Cron 作业。通常,Cron 作业的配置文件位于 /etc/crontab 或 /etc/cron.d 目录中。
添加一个新的 Cron 作业,以定期运行 logrotate 。以下是一个示例 Cron 作业:
0 0 * * * root /usr/sbin/logrotate -f /etc/logrotate.conf
这个 Cron 作业的含义是在每天午夜(00:00)执行 logrotate。可以根据需要调整时间表。/usr/sbin/logrotate -f /etc/logrotate.conf 是运行 logrotate 的命令。
保存配置文件。
步骤 4:重启 Cron 服务
如果使用的是 systemd,可以使用以下命令重启 Cron 服务:
sudo systemctl restart cron
如果使用的是 SysV init 系统,可以使用以下命令:
sudo service cron restart
步骤 5:验证 Cron 作业
可以使用以下命令列出当前配置的 Cron 作业:
crontab -l
这将显示所有用户的 Cron 作业,包括新添加的 logrotate 作业。
现在,logrotate 将根据在 Cron 作业中设置的时间表定期运行,执行日志轮转操作,以确保日志文件的定期清理和管理。
Docker 日志自动轮转和清理配置的更多相关文章
- Tomcat8.5.24日志自动清理(maxDays)功能探究
前言 测试人员反馈tomcat目录下的日志占用空间很大,需要自动清理.接到这个反馈时,想象着应该是一个很简单的功能,tomcat应该已经实现了日志的自动清理功能.于是乎,我先到网上查询了如何自动清除t ...
- IIS日志自动清理
IIS在运行的过程中日志会不停地增长,若iis的网站被频繁的调用或不当的调用,则会产生很多日志.我在系统运维的时候曾出现过20G的系统盘,由于合作商开发的程序有问题,每几百微秒调用一次web服务,短期 ...
- Linux**系统实现log日志自动清理
Linux系统实现log日志自动清理 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- tengine日志切割-配置分钟级别日志自动切割
tengine日志切割-配置分钟级别日志自动切割 安装 以安装最新版本的tengine-2.1.2版本 下载连接 tengine支持许多变量 变量 $conn_requests 当前请求在长连接上的序 ...
- Docker日志收集最佳实践
传统日志处理 说到日志,我们以前处理日志的方式如下: · 日志写到本机磁盘上 · 通常仅用于排查线上问题,很少用于数据分析 ·需要时登录到机器上,用grep.awk等工具分析 那么,这种方式有什么缺点 ...
- docker日志引擎说明
docker原生支持众多的日志引擎,适用于各种不同的应用场景,本篇文档对其作一个简单的说明. Docker日志引擎说明 docker支持的日志引擎如下: none:关闭docker的回显日志, doc ...
- 使用Docker+Jenkins自动构建部署
环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...
- docker 日志查看与清洗
Linux下查看磁盘与目录的容量——df.du df:列出文件系统的整体磁盘使用量: du:评估文件系统的磁盘使用量(常用于评估目录所占容量) df参数: -a:列出所有的文件系统,包括系统特有的/p ...
- Docker 日志管理最佳实践
开源Linux 回复"读书",挑选书籍资料~ Docker-CE Server Version: 18.09.6 Storage Driver: overlay2 Kernel V ...
- Android 开源组件 ----- Android LoopView无限自动轮转控件
Android 开源组件 ----- Android LoopView无限自动轮转控件 2015-12-28 15:26 by 杰瑞教育, 32 阅读, 0 评论, 收藏, 编辑 一.组件介绍 App ...
随机推荐
- 图书商城项目练习②后端服务Node/Express/Sqlite
本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程.面向初学者,本人也是初学者,搬砖技术还不成熟.项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite).到 ...
- 完美决解win10 可以上网却显示无internet的bug
试过网上的几乎所有方法,例如禁用复用网卡.网络重置.禁用复用服务,也用了用修改注册表下HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNlaSvcPa ...
- 楠少音乐盒(PC端)突破校园网限制
楠少音乐盒 突破校园网限制 最近在将音乐盒从web迁移到PC端,过程中的记录 在我们学校,工作时间内(周一至周五为工作日,下午上班时间)校园网都会拦截一些与工作无关的网站,例如购物.炒股.游戏.音乐等 ...
- C++ 惯用法之 Copy-Swap 拷贝交换
C++ 惯用法之 Copy-Swap 拷贝交换 这是"C++ 惯用法"合集的第 3 篇,前面 2 篇分别介绍了 RAII 和 PIMPL 两种惯用法: RAII: Resouce ...
- 详解在Linux中修改Tomcat使用的jdk版本
问题分析 由于部署个人项目使用了openjdk11,但是我之前安装的是jdk1.8,jdk版本升级的后果就是,tomcat运行的时候报一点小bug(因为之前安装tomcat默认使用了系统的jdk版本) ...
- Day02_Java_作业
A:选择题 1. 若有定义:int a,b; a=a+10;则执行上述语句后,a的值是(d). A. 10 B. 11 C. 0 D. 编译产生错误 2. 以下选项中变量均已正确定义,合法的赋值语句是 ...
- NSSCTF-[羊城杯 2021]签到题
(脑洞题 gif放在stegsolve,分离gif 大胆猜测! 图一 28准则 图二 太极八卦阵 8 图三 三十而立 30 图四 北斗七星 7 图五 四个人 4大才子 图六 这个是歼-20 图七 两只 ...
- 【MAUI Blazor踩坑日记】4.只在特定平台上引用包
其实这个并不是MAUI特有的问题,只是在MAUI中可能会遇到. 例如某个包只在Windows上有用,但打包的时候,安卓.ios也会把这个包计算在内 所以需要在不是特定平台时把它排除. 万幸从微软文档找 ...
- 【go语言】2.1.1 变量,常量和数据类型
Go 语言中,变量是存储数据的基本单位,常量则是固定不变的数据.每个变量和常量都有其对应的数据类型. 变量 在 Go 语言中,你可以使用 var 关键字来声明一个变量: var name string ...
- EF 管理数据库架构
本章会主要了解EF提供的独立迁移项目,用独立迁移项目自动创建dgml设计关系图和sql脚本. 迁移项目通常也叫(CodeFirst代码优先),在EF中迁移项目是在,在代码中设计数据库,每次对数据库的设 ...