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

工作流名称
Docker Registry 镜像标签定期清理工作流
主要功能和亮点
该工作流实现了自动化管理 Docker 镜像仓库中的镜像标签,定期扫描所有镜像及其标签,智能识别并删除过期或多余的标签,仅保留最新的若干标签及“latest”标签,确保仓库整洁有序。清理完成后自动执行垃圾回收,并通过邮件通知运维人员操作结果,支持失败告警,提升运维效率和仓库空间利用率。
解决的核心问题
- Docker 镜像仓库中标签数量不断累积导致存储资源浪费和管理混乱
- 手动清理工作繁琐且易出错
- 缺乏自动化告警和清理后的垃圾回收机制
应用场景
- 企业或团队使用私有 Docker 镜像仓库,需定期维护镜像标签,避免存储膨胀
- DevOps 工程师自动化镜像管理,提升运维自动化水平
- 云平台、持续集成环境中镜像版本管理和优化
主要流程步骤
- 定时触发:每天凌晨1点自动启动清理流程
- 列出所有镜像:从 Docker Registry 获取镜像列表
- 提取镜像名:解析镜像列表,逐个处理
- 获取镜像标签:拉取每个镜像的所有标签信息
- 拆分标签:将标签列表拆分成单个标签条目
- 过滤有效标签:剔除无效或空标签数据
- 获取标签详情:调用 API 获取标签对应的 Manifest 和创建时间
- 排序并分组:按创建时间倒序排序标签,并按镜像名分组
- 识别待删除标签:保留最新10个标签和“latest”,其余标记为待删除
- 删除旧标签:通过 DELETE 请求删除过期标签
- 执行垃圾回收:通过 SSH 执行 Registry 的垃圾回收命令
- 发送通知邮件:成功或失败后分别发送邮件通知运维人员
涉及的系统或服务
- Docker Registry HTTP API(操作镜像及标签)
- SMTP 邮件服务(发送通知邮件)
- SSH 服务(远程执行垃圾回收命令)
- n8n 自动化平台(调度与流程控制)
适用人群或使用价值
- DevOps 工程师和运维团队,帮助他们自动化管理 Docker 镜像,节省时间和人力成本
- 企业 IT 部门,提升镜像仓库的资源利用率和管理规范性
- 开发团队,确保镜像环境干净,避免因标签过多导致部署混乱
- 任何使用私有 Docker Registry 进行镜像管理的组织,显著降低维护复杂度和运维风险
通过该工作流,用户能够实现镜像标签的自动清理与维护,避免长期堆积导致的空间浪费和管理难题,同时保证关键标签的留存和及时告警,极大提升镜像仓库管理的自动化和可靠性。