用于HttpRequest Automate,定期自动化管理Docker镜像,清理旧标签,优化存储,发送通知邮件,确保镜像库整洁高效。
此工作流适合以下人群:
- DevOps 工程师:需要定期清理 Docker 镜像以释放存储空间。
- 系统管理员:负责维护和管理 Docker 注册表,确保其高效运行。
- 开发团队:希望保持镜像的整洁,避免使用过时的标签。
- 企业 IT 部门:需要遵循合规性和最佳实践,以确保镜像管理的有效性。
此工作流解决了 Docker 镜像管理中的以下问题:
- 存储空间不足:定期删除过时或未标记的镜像标签,释放存储空间。
- 镜像混乱:通过自动化清理过程,保持镜像的整洁和可管理性。
- 手动操作繁琐:减少人工干预,降低出错概率,提高工作效率。
工作流的详细步骤如下:
1. 定时触发:每隔一段时间(例如每天凌晨 1 点)自动启动工作流。
2. 列出镜像:从 Docker 注册表中获取所有镜像的列表。
3. 提取镜像名称:将镜像名称提取为单独的项,以便后续处理。
4. 检索镜像标签:为每个镜像获取其所有标签。
5. 分割标签:将标签分割为可单独处理的项。
6. 过滤有效标签:筛选出有效的标签,排除空值。
7. 更新字段:将有效标签的信息更新到工作流中。
8. 按创建日期排序:根据创建时间对标签进行排序,以便识别最旧的标签。
9. 按镜像分组标签:将标签按镜像分组,以便于管理。
10. 识别待删除标签:确定需要删除的旧标签,保留最新的十个标签和 'latest' 标签。
11. 删除旧标签:通过 HTTP 请求删除识别出的旧标签。
12. 发送通知邮件:在删除标签后,发送通知邮件告知相关人员。
13. 执行垃圾回收:在 Docker 注册表中执行垃圾回收,以释放未标记的镜像占用的空间。
14. 发送失败通知邮件:若删除操作失败,发送失败通知邮件告知相关人员。
用户可以通过以下方式自定义和调整此工作流:
- 修改触发时间:在定时触发节点中更改时间规则,以适应不同的需求。
- 更改邮件接收者:在发送通知邮件节点中修改 'toEmail' 和 'fromEmail' 字段,以发送到不同的邮箱。
- 调整保留标签数量:在识别待删除标签的代码中,修改保留的标签数量(例如从 10 改为 5)。
- 更新注册表 URL:在所有 HTTP 请求节点中替换 '<
- 添加新功能:根据需要在工作流中添加新的节点,以实现额外的功能,例如日志记录或更多的错误处理。