清理docker磁盘使用空间

news/2025/11/3 16:28:19/文章来源:https://www.cnblogs.com/fortune1/p/19187475
点击查看代码
#!/bin/bash
# Docker 清理工具(支持单独清理日志或全流程清理)
# 用法:
#   ./script.sh          # 执行全流程清理(系统资源+日志+数据卷)
#   ./script.sh --logs   # 仅执行容器日志清理#######################################
# 可配置参数(根据需求修改)
#######################################
LOG_SIZE_THRESHOLD="+1G"   # 日志大小阈值(如 +500M、+1G)
LOG_AGE_THRESHOLD="+7"     # 日志时间阈值(如 +7 表示7天前,单位:天)
KEEP_RUNNING_LOGS=0        # 是否保留运行中容器的日志(1=保留,0=清理)
KEEP_STOPPED_LOGS=0        # 是否保留已停止容器的日志(1=保留,0=清理)
######################################## 彩色输出配置
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # 重置颜色# 错误处理函数
error_handler() {echo -e "${RED}[错误] 步骤 $1 执行失败${NC}"
}# 检查 Docker 环境是否可用
check_docker_env() {echo -e "\n=== 检查 Docker 环境 ==="if ! command -v docker &> /dev/null; thenecho -e "${RED}[错误] 未安装 Docker,请先安装 Docker${NC}"exit 1fiif ! docker info &> /dev/null; thenecho -e "${RED}[错误] Docker 服务未运行,请启动 Docker 服务${NC}"exit 1fiecho -e "${GREEN}✅ Docker 环境正常${NC}"
}# 独立函数:清理容器日志
clean_container_logs() {echo -e "\n=== 容器日志清理 ==="local LOG_PATH="/var/lib/docker/containers"# 检查日志目录是否存在if [ ! -d "$LOG_PATH" ]; thenecho -e "${YELLOW}⚠️ 容器日志目录 $LOG_PATH 不存在,跳过日志清理${NC}"return 0fi# 1. 获取符合条件的容器ID(根据是否保留运行中/停止容器日志筛选)local TARGET_CONTAINERS=""if [ $KEEP_RUNNING_LOGS -eq 0 ] && [ $KEEP_STOPPED_LOGS -eq 0 ]; then# 清理所有容器的日志(运行中+已停止)TARGET_CONTAINERS=$(docker ps -aq)  # 所有容器IDelif [ $KEEP_RUNNING_LOGS -eq 0 ] && [ $KEEP_STOPPED_LOGS -eq 1 ]; then# 只清理运行中容器的日志TARGET_CONTAINERS=$(docker ps --format "{{.ID}}")  # 运行中容器IDelif [ $KEEP_RUNNING_LOGS -eq 1 ] && [ $KEEP_STOPPED_LOGS -eq 0 ]; then# 只清理已停止容器的日志TARGET_CONTAINERS=$(docker ps -aq --filter "status=exited")  # 已停止容器IDelseecho -e "${YELLOW}⚠️ 配置不允许同时保留运行中+已停止容器的日志,跳过清理${NC}"return 0fi# 2. 筛选符合大小+时间条件的日志文件if [ -z "$TARGET_CONTAINERS" ]; thenecho -e "${GREEN}✅ 没有符合条件的容器日志需要清理${NC}"return 0fi# 转换容器ID为正则表达式(用于匹配日志文件)local CONTAINER_REGEX=$(echo "$TARGET_CONTAINERS" | tr '\n' '|' | sed 's/|$//')local LOG_FILES=$(find "$LOG_PATH" \-type f \-name '*-json.log' \-size "$LOG_SIZE_THRESHOLD" \-mtime "$LOG_AGE_THRESHOLD" \| grep -E "$CONTAINER_REGEX")# 3. 显示待清理的日志文件并确认if [ -z "$LOG_FILES" ]; thenecho -e "${GREEN}✅ 没有超过 ${LOG_SIZE_THRESHOLD} 且存在 ${LOG_AGE_THRESHOLD} 天以上的日志文件${NC}"return 0fiecho -e "${YELLOW}即将清理以下日志文件(大小>${LOG_SIZE_THRESHOLD} 且 存在>${LOG_AGE_THRESHOLD}天):${NC}"echo "$LOG_FILES" | while read -r logfile; do# 显示日志文件大小和路径du -sh "$logfile" | awk '{print "  - " $1 "\t" $2}'doneread -p "确认清理以上日志文件?[y/N] " confirmif [[ "$confirm" != "y" && "$confirm" != "Y" ]]; thenecho -e "${YELLOW}⚠️ 已取消日志清理${NC}"return 0fi# 4. 执行清理(清空文件内容,保留文件)echo "开始清理..."echo "$LOG_FILES" | while read -r logfile; dotruncate -s 0 "$logfile" && echo "  已清空:$logfile"doneecho -e "${GREEN}✅ 容器日志清理完成${NC}"
}# 清理 Docker 系统资源(镜像、容器、构建缓存)
clean_system_resources() {echo -e "\n=== 清理 Docker 系统资源 ==="echo "清理未使用的镜像、容器、网络..."if ! docker system prune -a -f; thenerror_handler "系统资源清理"elseecho -e "${GREEN}✅ 系统资源清理完成${NC}"fiecho "清理构建缓存..."if ! docker builder prune -a -f; thenerror_handler "构建缓存清理"elseecho -e "${GREEN}✅ 构建缓存清理完成${NC}"fi
}# 清理未使用的数据卷
clean_volumes() {echo -e "\n=== 清理未使用的数据卷 ==="echo "清理无关联容器的数据卷..."if ! docker volume prune -f; thenerror_handler "数据卷清理"elseecho -e "${GREEN}✅ 数据卷清理完成${NC}"fi
}# 显示清理后资源使用情况
show_usage() {echo -e "\n=== 清理后 Docker 资源使用情况 ==="docker system df
}#######################################
# 主程序入口
#######################################
main() {check_docker_env# 根据参数选择执行模式if [ "$1" = "--logs" ]; thenecho -e "${YELLOW}>>> 执行模式:仅清理容器日志${NC}"clean_container_logselseecho -e "${YELLOW}>>> 执行模式:全流程清理(系统资源+日志+数据卷)${NC}"# 全流程执行前确认echo -e "\n${YELLOW}注意:将清理未使用的镜像、容器、缓存、数据卷及符合条件的日志${NC}"read -p "是否继续执行全流程清理?[y/N] " confirmif [[ "$confirm" != "y" && "$confirm" != "Y" ]]; thenecho "已取消执行"exit 0ficlean_system_resourcesclean_container_logsclean_volumesshow_usagefiecho -e "\n${GREEN}🎉 操作完成${NC}"
}# 启动主程序
main "$@"

使用方法:
全流程清理(默认):清理系统资源 + 日志 + 数据卷

点击查看代码
bash script.sh
**仅清理容器日志(单独执行日志清理功能):**
点击查看代码
bash script.sh --logs
**执行结果**
点击查看代码
=== 检查 Docker 环境 ===
✅ Docker 环境正常
>>> 执行模式:全流程清理(系统资源+日志+数据卷)注意:将清理未使用的镜像、容器、缓存、数据卷及符合条件的日志
是否继续执行全流程清理?[y/N] n  
已取消执行
[root@k8s-master233 ~]# vim 45.sh 
[root@k8s-master233 ~]# bash 45.sh === 检查 Docker 环境 ===
✅ Docker 环境正常
>>> 执行模式:全流程清理(系统资源+日志+数据卷)注意:将清理未使用的镜像、容器、缓存、数据卷及符合条件的日志
是否继续执行全流程清理?[y/N] y=== 清理 Docker 系统资源 ===
清理未使用的镜像、容器、网络...
Total reclaimed space: 0B
✅ 系统资源清理完成
清理构建缓存...
Total reclaimed space: 0B
✅ 构建缓存清理完成=== 容器日志清理 ===
✅ 没有符合条件的容器日志需要清理=== 清理未使用的数据卷 ===
清理无关联容器的数据卷...
Total reclaimed space: 0B
✅ 数据卷清理完成=== 清理后 Docker 资源使用情况 ===
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          4         4         247.5MB   3.88MB (1%)
Containers      7         7         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B🎉 操作完成

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

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

相关文章

2025年常温起皱风格水洗机供货商权威推荐榜单:棉麻起皱风格水洗机/棉起皱风格水洗机/麻起皱风格水洗机源头厂家精选

在纺织服装加工领域,常温起皱风格水洗机作为提升面料附加值的核心设备,其性能稳定性与工艺适配性直接决定着成品的质量等级与市场竞争力。根据2024年纺织机械行业协会数据显示,国内水洗设备市场规模已达87亿元,其中…

。第二次作业

项目 内容姓名+学号 周建昌 2023331200139作业目标 实现一个命令行文本统计马云库链接 https://gitee.com/zjc0910/second-assignment1.git这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/25rjjc

2025年镀锌钢格板制造企业权威推荐榜单:平台钢格板/齿形钢格板/插接钢格板实力厂家精选

在工业制造、市政基建和新能源开发等领域,镀锌钢格板的质量直接关系到项目安全与运营寿命。当前市场上品牌众多,部分企业存在以次充好、检测缺位等问题,导致产品承载不足、腐蚀过快等隐患。 选择一家可靠的镀锌钢格…

【新品上市】华清远见AIoT实战平台-STM32F103ESP32-S3 AI开发板套件,玩转小智AI桌宠机器狗智能车等项目

F103&ESP32-S3 AI 开发板是华清远见针对嵌入式与 AI 开发市场需求,打造的高性能、低成本AIoT实战平台。该开发板采用双核心设计,整合了STM32F103与ESP32-S3两款芯片:以ESP32-S3作为AI中枢,承担视觉识别、语音交…

2025 年钢板厂家最新推荐:优质企业榜单发布,覆盖中厚 / 镀锌 / 冷轧 / 高强度等类型,附协会权威测评与选择建议

引言 在建筑、机械制造、汽车工业等核心领域,钢板作为关键原材料,其品质与供应稳定性直接影响下游产业发展质量。据中国钢铁工业协会 2025 年一季度测评数据显示,当前国内钢板市场合规品牌仅占 68%,部分小企业产品…

微信小程序办公用品领用管理系统:小微企业高效管理新选择

一、概述总结 这款办公用品领用管理系统是基于微信小程序开发的高效管理工具,专为小微企业打造,无需依赖企业微信,可直接在微信端使用。系统聚焦公司内部办公用品领用、工服发放及相关数据统计,覆盖仓库物资全流程…

Unresolved reference ksp

Unresolved reference kspUnresolved reference ksp ,ksp 报错// Top-level buildbuild.gradle.ktsplugins {alias(libs.plugins.android.application) apply falsealias(libs.plugins.kotlin.android) apply falseal…

CF1167F Scalar Queries

先考虑不朴素 \(O(n^2)\) 做法。 显然是考虑枚举位置 \(i\),将小于 \(a_i\) 的位置拎出来,显然其将序列分成若干段,每个段的子贡献是一样的(大概是一个等差数列一样的东西)。 这个做法一看就很有前途,从小到大枚…

2025 年 11 月商标注册服务商权威推荐榜:覆盖江苏商标注册,靖江商标注册,常州商标注册,镇江商标注册,丹阳商标注册的专业机构精选

2025 年 11 月商标注册服务商权威推荐榜:覆盖江苏商标注册,靖江商标注册,常州商标注册,镇江商标注册,丹阳商标注册的专业机构精选 行业背景与发展趋势 随着中国知识产权保护体系的不断完善,商标注册服务行业正迎…

2025 年 11 月 DALI 调光系统厂家推荐排行榜,调光网关,调光开关,调光电源,调光驱动,调光传感器,调光模块,调光控制系统公司推荐

2025年11月DALI调光系统厂家推荐排行榜:调光网关、调光开关、调光电源、调光驱动、调光传感器、调光模块、调光控制系统公司推荐 一、行业技术发展现状 数字可寻址灯光接口(DALI)协议作为智能照明控制领域的重要标准…

2025年11月反应釜供厂家推荐榜:行业领先解决方案与排名分析

2025年11月反应釜供厂家推荐榜:行业领先解决方案与排名分析 摘要 反应釜供应商行业在2025年持续发展,随着化工、石油、医药等领域的扩张,对高质量反应釜的需求日益增长。本文基于行业数据和专家见解,整理了排名前十…

2025 年连接器厂家最新推荐榜:实力制造商全面盘点,附中国电子元件行业协会权威测评数据与选型指南

引言 随着汽车电子、工业控制、医疗设备等领域对连接器需求的持续攀升,市场对优质连接器厂家的筛选需求愈发迫切。据中国电子元件行业协会 2025 年第一季度测评数据显示,国内连接器企业合格率仅为 78.3%,其中具备核…

PS 进化了!2026 版让“所想即所见”成为现实

Adobe Photoshop 2026 是 Adobe 推出的新一代专业级图像处理软件,以其强大的编辑能力与智能化工作流程而闻名。此次版本在 AI 智能生成、图像融合、模糊特效 与 用户交互体验 等方面均进行了大幅升级,为设计师、摄影…

校管家小程序系统:教育培训行业的线上运营利器

一、概述总结 校管家小程序系统是一款专为教育培训行业打造的通用型官网 + 门店预约一体化工具。它以小程序为核心载体,既具备官网的品牌展示功能,又深度贴合教育培训行业的特定运营需求,能帮助培训机构高效覆盖线上…

AWS |ssh连接

默认账号ec2-user 该服务器在旧电脑上有保存密钥对,需要对此做更新和替换 在aws控制台登陆实例:开放ssh权限$ sudo -i$ vi /etc/ssh/sshd_configPasswordAuthentication no,把 no 改成 yes #PermitRootLogin prohibi…

国产化Word处理控件Spire.Doc教程:如何使用 Java 将 TXT 文本转换为 Excel 表格

将 TXT 文件转换为 Excel 格式,能够使数据更加易于管理和分析。本文将介绍如何使用 Java 和 Spire.XLS for Java 库实现将 TXT 文件转换为 Excel 表格,帮助您更高效地处理和分析数据。在数据处理和分析中,TXT 文件常…

SMTP协议是什么意思?SMTP端口的作用?

SMTP协议是什么意思? SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) 是一种用于在电子邮件服务器之间发送电子邮件的通信协议。SMTP 是互联网电子邮件系统的核心,用于确保邮件从发送者传输到接收者的邮件…

2025 年集装箱拖车公司最新推荐榜,技术实力与市场口碑深度解析及优质品牌综合评估

近期,行业权威协会开展了集装箱拖车供应厂家综合测评工作,本次测评覆盖全国范围内近百家主流供应商,从技术实力、资源配置、服务质量、市场口碑等六大维度,采用量化评分与实地考察相结合的方式进行评估。测评中,技…

2025年保温一体板厂家最新推荐:浙江乐邦节能,铝板保温一体板/钢板保温一体板/薄陶瓷保温一体板/薄陶瓷一体板/金属保温一体板/引领保温与装饰个性化新标准

随着建筑行业对节能环保、施工效率及外观美观性要求的不断提升,保温装饰一体板已从高端建筑专属逐步普及至住宅、商业、工业等多个领域,2025年市场规模预计持续扩大。但市场增长也带来厂商技术实力、产品适配性、服务…

2025年杭州可以看运河的写字楼推荐,武林CBD商务办公全解析

在杭州武林CBD的商务版图中,能将运河盛景纳入日常办公视野的写字楼始终是企业选址的黄金标的——既需占据核心区位,又要兼顾景观视野与商务品质。面对市场上良莠不齐的写字楼项目,如何找到真正契合企业需求的惬意看…