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 ...
随机推荐
- Pinot2:一款强大的无人机操作系统
目录 1. 引言 1.1. 背景介绍 1.2. 文章目的 1.3. 目标受众 2. 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍 2.3. 相关技术比较 3. 实现步骤与流程 3.1 ...
- 数仓性能调优:大宽表关联MERGE性能优化
摘要:本文主要为大家讲解在数仓性能调优过程中,关于大宽表关联MERGE性能优化过程. 本文分享自华为云社区<GaussDB(DWS)性能调优:大宽表关联MERGE性能优化>,作者:譡里个檔 ...
- Pyinstaller打包 Pytest+Allure成exe文件执行时,报错ERROR: usage: apitest.exe [options] [file_or_dir] [file_or_dir] [...] xxx.exe: error: unrecognized arguments: --alluredir=.\\report\\xml --clean-alluredir
网上找了很多案例啊 都没解决问题,由本人的多次试验 终于成功解决 1.打包运行 pyinstaller -D xxx.py 打包成功后 执行exe报错 如下 2.此情况是说明 命令无法正确识 ...
- freeswitch的mod_cdr_csv模块
概述 freeswitch是一款简单好用的VOIP开源软交换平台. 在语音呼叫的过程中,话单是重要的计价和结算依据,话单的产生需要稳定可靠,可回溯. fs中基本的话单模块mod_cdr_csv,可以满 ...
- Object.equals 和 String.equals的区别
一. 源码展示: 1. Object.equals: ①引用类型地址值比较,直接返回结果:true || false public class Object { public boolean equ ...
- pandas 格式化日期
output_data["ShipDate"] = output_data["ShipDate"].dt.strftime("%Y/%m/%d&quo ...
- pycharm中使用命令行
//调用django命令 tools->Run manage.py... ->弹出窗口->输入命令,回车 //创建appstartapp [appname] //数据库迁移makem ...
- 记一次使用pagehelper的坑(返回的total和size每页条数一致的问题)
问题描述 众所周知,pagehelper使用时应该在dao查询语句的前一句加上PageHelper.startPage,所以标题的问题由此引出-- 原因 PageHelper.startPage使用后 ...
- 掌握Spring条件装配的秘密武器
本文分享自华为云社区<Spring高手之路9--掌握Spring条件装配的秘密武器>,作者:砖业洋__. 在Spring框架中,条件装配是一个强大的功能,可以帮助我们更好地管理和控制Bea ...
- K8S | Service服务发现
服务发现与负载均衡. 一.背景 在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关.注册中心.配置中心等相关服务,可以被集群外部访问: 对于测试「Tes」环境或者 ...