当前位置: 首页 > news >正文

如何安全删除Docker Registry镜像?delete-docker-registry-image完整教程

如何安全删除Docker Registry镜像?delete-docker-registry-image完整教程

【免费下载链接】delete-docker-registry-imageIf you are running a private v2 docker registry, and you are storing your data on disk, running this script from the machine where the data lives will let you fully delete an image or tag项目地址: https://gitcode.com/gh_mirrors/de/delete-docker-registry-image

Docker Registry作为容器镜像的存储中心,随着使用时间增长会积累大量不再需要的镜像,占用宝贵的存储空间。delete-docker-registry-image是一款专为清理私有Docker Registry设计的高效工具,能帮助管理员安全删除指定镜像或标签,释放磁盘空间。本文将详细介绍如何使用这款工具完成镜像清理任务。

📋 工具简介:为什么选择delete-docker-registry-image?

当你运行私有v2版本Docker Registry且数据存储在本地磁盘时,delete-docker-registry-image脚本可直接在数据所在机器上执行,实现镜像或标签的彻底删除。与Docker官方提供的垃圾回收功能相比,它具有以下优势:

  • 精准控制:支持删除整个仓库或特定标签,避免误删
  • 安全操作:提供干运行(dry-run)模式,执行前预览删除内容
  • 简单易用:无需复杂配置,通过命令行参数即可完成操作
  • 兼容性广:支持多种Docker和Registry版本组合(测试通过的配置包括docker 1.9.1+与registry 2.2.1+等)

核心脚本文件delete_docker_registry_image.py实现了主要清理逻辑,而clean_old_versions.py则提供了基于正则表达式的批量标签清理功能。

🔧 快速安装:两步完成部署

安装过程非常简单,通过curl命令即可直接获取脚本并设置执行权限:

curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null sudo chmod a+x /usr/local/bin/delete_docker_registry_image

执行完成后,可通过delete_docker_registry_image --help验证安装是否成功。

⚙️ 前置配置:环境变量设置

在使用前,需要通过环境变量指定Registry数据目录:

export REGISTRY_DATA_DIR=/opt/registry_data/docker/registry/v2

默认路径为/opt/registry_data/docker/registry/v2,你也可以直接编辑脚本修改此变量以适应你的部署环境。

⚠️重要安全提示:执行删除操作前必须关闭Registry服务,避免出现竞争条件和数据丢失风险!

🚀 核心功能:常用操作指南

1. 干运行模式:安全预览删除内容

在实际执行删除前,建议先使用--dry-run参数进行预览:

delete_docker_registry_image --image testrepo/awesomeimage --dry-run

此命令会显示将要删除的内容,但不会实际执行删除操作,是验证操作正确性的重要步骤。

2. 删除整个仓库

当需要删除整个镜像仓库时,使用以下命令(确保已关闭Registry服务):

delete_docker_registry_image --image testrepo/awesomeimage

3. 删除特定标签

如需保留仓库只删除某个标签,可在镜像名后添加:标签名

delete_docker_registry_image --image testrepo/awesomeimage:supertag

4. 删除未标记镜像

使用--untagged参数可以清理仓库中所有未标记的镜像数据:

delete_docker_registry_image --image testrepo/awesomeimage --untagged

5. 高级批量清理:clean_old_versions.py

辅助脚本clean_old_versions.py支持基于正则表达式的批量标签清理,例如:

./clean_old_versions.py --image '^repo/sitor*' --include '^0.1.*' -l 2 -b 2016-06-25T12:00:00 -a 2016-01-01T00:00:00 --registry-url http://localhost:5000

此命令会:

  • 匹配所有以repo/sitor开头的镜像
  • 匹配所有以0.1.开头的标签
  • 保留最新的2个标签
  • 仅删除2016-01-01至2016-06-25期间创建的标签

同样支持--dry-run参数进行预览。

🧪 测试验证:确保工具正常工作

项目提供了完整的测试环境,可通过以下步骤验证工具功能:

./test/start_up_vagrant_box_for_running_tests vagrant ssh cd /vagrant ./test/clean_and_run

已知测试通过的配置组合:

  • docker: 1.9.1, registry:2.2.1
  • docker: 1.10.2, registry:2.3.0
  • docker: 1.11.2, registry:2.3.0
  • docker: 1.12.1, registry:2.5.0

⚠️ 注意事项与替代方案

不兼容的版本组合

以下配置已知会导致测试失败,使用时需避免:

  • docker: 1.10.2, registry:2.2.1

Docker官方替代方案

Docker官方在新版本中已内置部分清理功能:

  1. 在registry:2.2+版本中,可通过设置环境变量REGISTRY_STORAGE_DELETE_ENABLED=true启用元数据删除功能
  2. 删除标签后,需执行垃圾回收清理二进制数据:registry garbage-collect /etc/docker/registry/config.yml

官方方案虽然集成度高,但delete-docker-registry-image在灵活性和兼容性方面仍有优势,特别适合需要精细控制的场景。

📝 总结

delete-docker-registry-image提供了一种简单安全的方式来管理Docker Registry存储空间,通过本文介绍的方法,你可以轻松实现镜像的精准清理。无论是单个标签删除还是批量清理,这款工具都能满足你的需求。记得在操作前始终使用--dry-run模式验证,确保数据安全。

项目仓库地址:https://gitcode.com/gh_mirrors/de/delete-docker-registry-image

【免费下载链接】delete-docker-registry-imageIf you are running a private v2 docker registry, and you are storing your data on disk, running this script from the machine where the data lives will let you fully delete an image or tag项目地址: https://gitcode.com/gh_mirrors/de/delete-docker-registry-image

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1235908/

相关文章:

  • 云服务器新手配置内网穿透服务(frp)
  • 内存泄漏系列专题分析之二十:camx swap内存泄漏实例分析
  • 2026苏州黄金回收新规解读!6区48家正规门店盘点,0损耗透明报价上门回收攻略 - 企业家观察员
  • Ingress2Gateway 安全考虑:转换过程中的权限管理和资源访问控制
  • 小程序毕设项目:基于SpringBoot的学生选课报名、课表查看一体化小程序 高校教务线上选课数字化管理系统 移动端校园选课与教师课程管理平台 (源码+文档,讲解、调试运行,定制等)
  • BuildBuddy CLI工具完全指南:从安装到高级调试技巧
  • undefined reference to `touchgfx::paint::rgb888::lineFromColor
  • Buzz语音转录工具:5个简单技巧让你成为音频转文字高手
  • AI建站工具怎么选?一份真实用的对比指南与筛选标准
  • mpv家用车型推荐:2027款格瑞维亚座椅舒适度解析 - 资讯速览
  • 2026毓典奢品汇北京江诗丹顿回收避坑指南|纵横四海传袭系列行情 顶奢腕表高价变现攻略 - 二奢行情速报
  • Replugged性能优化技巧:让你的Discord运行如丝般顺滑
  • 武汉智工职业技术学校王牌招生专业详解 附 2026 完整招生简章 - 武汉中职最新信息发布
  • 终极指南:如何自制高效雌二醇凝胶 - 完整配方与实战经验分享
  • 内存泄漏系列专题分析之三十一:Camx进程dumpsys meminfo Unknown部分内存拆解
  • react学习与使用
  • 为什么选择Tack?5个理由告诉你为什么这是最佳的Terraform Kubernetes部署方案
  • 2026南京玄武劳力士卡地亚欧米茄回收门店盘点 正规实体完整一览 - 融媒生活
  • 2026食品自动化产线选型指南:软包装抓取专用柔爪供应商推荐 - 品牌深度评测
  • HDVPSS VIP_PARSER寄存器配置实战:从手册到稳定视频采集代码
  • 如何5分钟快速掌握Twitch视频下载:小白也能上手的完整教程
  • 微软Build 2026 AI技术突破:自研模型与智能体演进
  • 重磅公示|2026年7月百达翡丽香港官方售后服务中心网点地址及电话 - 百达翡丽服务中心
  • 制造行业工厂工业设备维保相关
  • 紧急通知:2024Q3起,未部署AI工作流的工程师将面临37%岗位响应延迟风险(附合规迁移路径)
  • SSRS性能优化技巧:提升遥感图像分割效率的10个方法
  • 你的Copilot可能正在被“下毒”:AI编程工具遭遇提示注入攻击
  • 2026年 乳山行业供应链服务公司实力洞察 - 甄选服务推荐
  • 如何3分钟完成图表数据提取:WebPlotDigitizer开源工具完全指南
  • LuxCoreRender:免费开源物理渲染引擎的完整指南