Docker Registry 镜像标签定期清理工作流

该工作流自动化管理 Docker 镜像仓库中的标签,通过定期扫描并删除过期或多余的标签,仅保留最新的若干个及“latest”标签,从而保持仓库整洁。清理后执行垃圾回收,并通过邮件通知运维人员操作结果,支持失败告警,提升运维效率和空间利用率,解决了存储资源浪费和管理混乱的问题。

流程图
Docker Registry 镜像标签定期清理工作流 工作流程图

工作流名称

Docker Registry 镜像标签定期清理工作流

主要功能和亮点

该工作流实现了自动化管理 Docker 镜像仓库中的镜像标签,定期扫描所有镜像及其标签,智能识别并删除过期或多余的标签,仅保留最新的若干标签及“latest”标签,确保仓库整洁有序。清理完成后自动执行垃圾回收,并通过邮件通知运维人员操作结果,支持失败告警,提升运维效率和仓库空间利用率。

解决的核心问题

  • Docker 镜像仓库中标签数量不断累积导致存储资源浪费和管理混乱
  • 手动清理工作繁琐且易出错
  • 缺乏自动化告警和清理后的垃圾回收机制

应用场景

  • 企业或团队使用私有 Docker 镜像仓库,需定期维护镜像标签,避免存储膨胀
  • DevOps 工程师自动化镜像管理,提升运维自动化水平
  • 云平台、持续集成环境中镜像版本管理和优化

主要流程步骤

  1. 定时触发:每天凌晨1点自动启动清理流程
  2. 列出所有镜像:从 Docker Registry 获取镜像列表
  3. 提取镜像名:解析镜像列表,逐个处理
  4. 获取镜像标签:拉取每个镜像的所有标签信息
  5. 拆分标签:将标签列表拆分成单个标签条目
  6. 过滤有效标签:剔除无效或空标签数据
  7. 获取标签详情:调用 API 获取标签对应的 Manifest 和创建时间
  8. 排序并分组:按创建时间倒序排序标签,并按镜像名分组
  9. 识别待删除标签:保留最新10个标签和“latest”,其余标记为待删除
  10. 删除旧标签:通过 DELETE 请求删除过期标签
  11. 执行垃圾回收:通过 SSH 执行 Registry 的垃圾回收命令
  12. 发送通知邮件:成功或失败后分别发送邮件通知运维人员

涉及的系统或服务

  • Docker Registry HTTP API(操作镜像及标签)
  • SMTP 邮件服务(发送通知邮件)
  • SSH 服务(远程执行垃圾回收命令)
  • n8n 自动化平台(调度与流程控制)

适用人群或使用价值

  • DevOps 工程师和运维团队,帮助他们自动化管理 Docker 镜像,节省时间和人力成本
  • 企业 IT 部门,提升镜像仓库的资源利用率和管理规范性
  • 开发团队,确保镜像环境干净,避免因标签过多导致部署混乱
  • 任何使用私有 Docker Registry 进行镜像管理的组织,显著降低维护复杂度和运维风险

通过该工作流,用户能够实现镜像标签的自动清理与维护,避免长期堆积导致的空间浪费和管理难题,同时保证关键标签的留存和及时告警,极大提升镜像仓库管理的自动化和可靠性。