You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Nexus仓库的Docker镜像配置自定义清理规则

针对这类内置清理策略不支持的动态保留场景,你可以在原有3个内置定时任务的基础上,新增自定义脚本前置执行,整体方案如下:

核心逻辑

Nexus 原生的 cleanup policy 只支持静态规则匹配,无法根据同组镜像的数量做动态判断,你可以通过调用 Nexus 公开的 REST API 实现自定义逻辑:

  1. 调用 API 拉取目标 Docker 仓库下所有镜像信息,按镜像名称分组,同个镜像下所有 build-xxx 格式的标签归为同一组
  2. 对每组标签单独做规则判断:
    • 若该组下的标签总数 ≤ 1:所有标签直接标记为保留,不受下载时间阈值限制
    • 若该组下的标签总数 > 1:先过滤出符合保留正则规则的标签(例如 build-latest)直接保留,剩余标签再判断最后下载时间是否超过你设置的5天阈值,符合条件的加入待删除列表
  3. 批量调用 API 删除待删除列表内的镜像
  4. 脚本执行完成后,再顺序执行你原来配置的3个内置清理任务即可

落地配置

  • 脚本可以用 Python、Shell 等任意语言实现,用 Nexus 管理员账号的 Basic Auth 鉴权即可,拉取组件信息的常用接口为 /service/rest/v1/components?repository=<你的仓库名>,注意处理分页返回的结果
  • 可以直接将脚本配置为 Nexus 内置的「Execute script」类型定时任务,也可以放在外部服务器通过 crontab 调度,执行时间设置为原有3个清理任务之前即可
  • 上线前建议先加 dry run 逻辑,只打印待删除列表不实际执行删除,确认规则符合预期后再正式上线

注:脚本删除的只是镜像的索引记录,还是需要执行原有「Docker - Delete unused manifests and images」和「Admin - Compact blob store」任务,才能真正释放存储空间。

内容的提问来源于stack exchange,提问作者Sleepy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:06:05