Docker 容器日志查看和清理

🚀 作者主页: 有来技术
🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot
🌺 仓库主页: Gitee 💫 Github 💫 GitCode
💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

目录

  • Docker 容器日志查看
  • Docker 容器日志清理
    • 单容器日志清理
    • 所有容器日志清理
    • 定时清理
  • 设置 Docker 容器日志大小限制
    • 全局设置
    • 单容器设置
  • 常用命令

Docker 容器日志查看

查看所有容器数据大小并按倒序排列:

du -d1 -h /var/lib/docker/containers | sort -rh
  • du: 用于估算文件或目录空间使用量。
  • -d1: 仅显示深度为1的目录,即只显示直接子目录的信息。
  • -h: 以人类可读的格式显示文件大小。
  • /var/lib/docker/containers: 要查看的目录路径,这是 Docker 存储容器数据的默认路径。
  • sort -rh: 对 du 的输出进行排序。-r 表示逆序(降序),-h 表示以人类可读的格式排序(KB、MB、GB)。

上图可以看到容器ID为 5c51773bc35d19d69c8f07895232295e4abeb0c9f25e25ca3884fec6ebd6f3fa 的数据较大。

cd /var/lib/docker/containers/5c51773bc35d19d69c8f07895232295e4abeb0c9f25e25ca3884fec6ebd6f3fa
# 查看容器数据目录下的文件大小
du -sh * | sort -rh

Docker 容器日志清理

单容器日志清理

直接使用 rm -rf <container-id>-json.log 删除日志文件可能导致文件被占用,因为容器仍在运行,并且可能仍在使用该文件的文件描述符。这样的操作可能会导致文件系统空间不会立即释放。

为确保不中断容器日志记录,并释放文件描述符,可以使用以下命令:

truncate -s 0 <container-id>-json.log

这个命令会将指定文件的大小截断为零字节,但不会删除文件。这样,容器的日志文件会被清空,但文件描述符仍然保持打开,不会影响正在运行的容器。

所有容器日志清理

创建了一个名为 clean_docker_logs.sh的清理脚本

touch clean_docker_logs.sh
vi clean_docker_logs.sh

复制下面内容至 clean_docker_logs.sh

#!/bin/bash# Docker容器日志清理脚本# 设置Docker日志文件存储路径
log_path="/var/lib/docker/containers"# 获取所有容器ID
container_ids=$(ls -1 $log_path)# 循环处理每个容器
for container_id in $container_ids; do# 构造日志文件路径log_file="${log_path}/${container_id}/${container_id}-json.log"# 检查日志文件是否存在if [ -f "$log_file" ]; thenecho "清理容器 ${container_id} 的日志文件: ${log_file}"# 清空日志文件truncate -s 0 "$log_file"elseecho "未找到容器 ${container_id} 的日志文件: ${log_file}"fi
doneecho "日志清理完成。"

clean_docker_logs.sh 脚本复制到 /usr/local/bin 目录(这个目录通常包含用户自己安装的可执行文件),并给予执行权限:

cp clean_docker_logs.sh /usr/local/bin/
chmod +x /usr/local/bin/clean_docker_logs.sh

然后执行清理脚本:

sh /usr/local/bin/clean_docker_logs.sh

执行完清理脚本查看所有容器的日志已清理完毕

定时清理

如果想将清理容器日志的操作做成一个定时任务,可以使用 cron 作业。

编辑 cron 表

crontab -e

在文件末尾添加类似如下行,以每天凌晨凌晨执行清理任务为例:

0 0 * * * /usr/local/bin/clean_docker_logs.sh

第一个字段(0):分钟(0-59)
第二个字段(0):小时(0-23)
第三个字段():天(1-31)
第四个字段(
):月份(1-12)
第五个字段(*):星期几(0-6,0 表示星期日)

Docker 容器的日志大小可以通过 Docker Daemon 的配置进行全局设置,也可以通过在运行容器时指定参数进行单独设置。

设置 Docker 容器日志大小限制

全局设置

要在 Docker Daemon 上全局设置日志大小,你需要修改 Docker Daemon 的配置文件(通常是 /etc/docker/daemon.json)。

打开 Docker Daemon 配置文件:

nano /etc/docker/daemon.json

如果文件不存在,你可能需要创建它。在文件中添加以下配置:

   {"log-driver": "json-file","log-opts": {"max-size": "10m",  # 设置日志文件最大大小"max-file": "3"     # 设置最大日志文件数量}}

这里的 "max-size": "10m" 表示每个日志文件的最大大小为 10MB,而 "max-file": "3" 表示保留最多 3 个旧的日志文件。

重新启动 Docker 服务,以应用新的配置:

 systemctl restart docker

单容器设置

如果你想为单个容器设置不同的日志大小,可以在运行容器时使用 --log-opt 参数。

docker run -d --log-opt max-size=10m --log-opt max-file=3 your_image

这样会覆盖 Docker Daemon 全局设置,为该容器设置特定的日志大小。

常用命令

列出当前目录和文件的大小

du -h -x --max-depth=1 | sort -rh
  • du:用于估算文件空间使用情况。
  • -h:以人类可读的格式显示文件大小(例如,1K、234M、2G)。
  • -x:跳过不同文件系统的目录。
  • –max-depth=1:只显示指定目录的总计,不进入子目录。
  • sort -rh:以逆数值顺序(-r)排序,并使用人类可读的数值(-h)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209716.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java springboot通过application配置文件生成随机值并控制范围

我们找到 项目的 application 配置文件 这里我们还是习惯用 yml格式的 我们在配置文件中 写出 ${random.} 的时候 他就会将所有可配置的随机类型都提示出来了 有 整数 长整星 字符串 uuid 这里 我们来个模板 testcase:book:id: ${random.int}name: ${random.value}date: ${r…

Ubuntu18.04安装Ipopt-3.12.8流程

本文主要介绍在Ubuntu18.04中安装Ipopt库的流程&#xff0c;及过程报错的解决方法&#xff0c;已经有很多关于Ipopt安装的博客&#xff0c;但经过我的测试&#xff0c;很多都失效了&#xff0c;经过探索&#xff0c;找到可流畅的安装Ipopt的方法&#xff0c;总结成本篇博客。 …

提升Zoom视频会议流畅度,试试一站式SaaS应用加速方案

对于一些跨国企业&#xff0c;Zoom是比较常用的视频会议软件。首先明确的是Zoom官方版也就是国际版&#xff0c;国内企业访问Zoom国际版会觉得慢一点&#xff0c;尤其在进行跨国、跨区域大型实时会议时卡顿、花屏就会更为明显。 为什么会卡顿呢&#xff1f; 主要问题之一还是受…

zabbix配置snmp trap--使用snmptrapd和Bash接收器(缺zabbix_trap_handler.sh文中自取)--图文教程

1.前言 我的zabbix的版本是5.0版本&#xff0c;5.0的官方文档没有使用bash接收器的示例&#xff0c;6.0的官方文档有使用bash接收器的示例&#xff0c;但是&#xff0c;下载文件的链接失效&#xff1f;&#xff01; 这里讲解zabbix-server端配置和zabbix web端配置 2.zabbix-…

UI咨询公司-蓝蓝设计:顶级秘籍:提升UI设计吸引力的3大绝招

想要让你的UI设计在海量应用中脱颖而出&#xff0c;吸引用户眼球吗&#xff1f;如果你正在寻找提升UI设计吸引力的绝妙方法&#xff0c;那么你绝对不能错过本文&#xff01;我们将为你揭示顶级UI设计师都不会告诉你的3大绝招&#xff0c;让你轻松掌握提升UI设计吸引力的关键技巧…

kafka 3.x 学习笔记

kafka 3.x 学习笔记 在 kafka 2.8.0 版本之前&#xff0c;安装使用 kafka 需要配套安装 zookeeper&#xff0c;但在 2.8.0 版本之后&#xff0c;不再需要安装 zookeeper&#xff0c;本次学习笔记采用的 kafka 版本为 3.0.0。 文章目录 kafka 3.x 学习笔记一、kafka 定义1 什么是…

【Proteus仿真】【51单片机】篮球比赛计分器

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用声光报警模块、动态数码管模块、按键模块等。 主要功能&#xff1a; 系统运行后&#xff0c;数码管显示比赛时间和AB队得分&#xff1b;系统还未开…

网络和Linux网络_10(网络层)IP协议+分片组装+网段划分+路由

目录 1. IP协议作用和报头 1.1 IP和TCP作用 1.2 IP协议报头 2. 分片与组装 2.1 分片与组装概念 2.2 类似面试题的QA 3. 网段划分和IP地址 3.1 网段划分 3.2 IP地址分类 3.3 内外IP和公网IP地址 4. 路由和8位生存时间 4.1 路由的概念 4.2 8位生存时间 5. IP相关选…

华为云之一键安装宝塔面板

华为云之一键安装宝塔面板 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、宝塔面板介绍三、环境准备工作3.1 预置实验环境3.2 查看环境信息3.3 登录华为云3.4 查看弹性云服务器状态3.5 ssh登录弹性云服务器3.6 查看操作系统版本 四、安装宝塔面板4.1 一键部署宝塔面板…

git 本地改动无法删除

1. 问题 记录下git遇到奇怪的问题&#xff0c;本地有些改动不知道什么原因无法删除 git stash&#xff0c; git reset --hard HEAD 等都无法生效&#xff0c;最终通过强制拉取线上解决 如下图&#xff1a; 2. 解决 git fetch --all git reset --hard origin/master执行这两…

业务场景中Hive解析Json常用案例

业务场景中Hive解析Json常用案例 json在线工具 json格式转换在线工具 https://tool.lu/json/format格式互转&#xff1a; // 格式化可以合并整行显示 {"name":"John Doe","age":35,"email":"johnexample.com"}// 格式化…

TimeGPT:时间序列预测模型实例

时间序列预测领域正在经历一个非常激动人心的时期。在过去的三年里&#xff0c;我们见证了许多重要的贡献&#xff0c;如N-BEATS、N-HiTS、PatchTST和TimesNet等。同时&#xff0c;大型语言模型&#xff08;LLM&#xff09;近来在流行度方面取得了很大的成功&#xff0c;例如Ch…

深入了解Java Period类,对时间段的精确控制

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概2900多字&#xff0c;预计阅读时间长需要3分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

海外的直播平台

1、Netflix Netflix以允许人们从众多设备观看系列和电影而闻名。用户可以开设一个帐户并添加不同的用户个人资料&#xff0c;这对于想要为整个家庭拥有单独帐户而又无需开设大量帐户并单独付款的人来说非常有用。它现在增加了一个直播服务&#xff0c;允许观众参加现场练习课程…

chrome overrides 怎么用?

在network里找到你想替换的文件 右键选择override content 他会提示你选择文件夹 你选择本地的一个 紧接着他会提示你 点允许 再去你创建的那个目录里查看 会发现 他自动帮你创建了目录 他会把线上的被替换目标文件放在里面 你直接修改他就可以了

MySQL InnoDB Cluster

MySQL InnoDB Cluster 一、InnoDB Cluster 基本概述 MySQL InnoDB Cluster 为 MySQL 提供了一个完整的高可用解决方案。通过使用 MySQL Shell 提供的 AdminAPI,你可以轻松地配置和管理一组至少由3个MySQL服务器实例组成的 InnoDB 集群。 InnoDB 集群中的每个 MySQL 服务器实例…

python爬虫基础知识

使用python进行网络爬虫开发之前&#xff0c;我们要对什么是浏览器、什么HTML&#xff0c;HTML构成。请求URL的方法都有一个大概了解才能更清晰的了解如何进行数据爬取。 什么是浏览器&#xff1f; 网页浏览器&#xff0c;简称为浏览器,是一种用于检索并展示万维网信息资源的…

基于Java SSM框架实现实现四六级英语报名系统项目【项目源码+论文说明】

基于java的SSM框架实现四六级英语报名系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个高校四六级报名管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作…

绿色建筑革新,气膜球馆成为城市锻炼新热点

近年来&#xff0c;全民健身设施蓬勃发展&#xff0c;个性化球场设计逐渐取代了传统模式&#xff0c;其中备受欢迎的是新潮的绿色建筑——气膜室内球馆。这种创新的建筑形式不仅适用于传统的篮球、足球、羽毛球等常规运动&#xff0c;还可以容纳冰壶、滑雪等更为复杂的活动&…

Spring事务传播机制

在上篇文章中&#xff0c;小编带领大家了解了Spring事务&#xff1a;Spring事务-CSDN博客&#xff0c;那么&#xff0c;本篇文章将会带领大家深入了解&#xff1a;Spring事务传播机制&#xff0c;感兴趣的各位老铁&#xff0c;欢迎深入探讨&#xff01;&#xff01; 事务传播机…