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

Harbor垃圾回收是否删除所有无标签镜像?如何清理已删仓库释放空间?

Harbor垃圾回收(GC)行为说明及需求实现方案

核心问题答案

默认情况下,Harbor的垃圾回收(GC)会执行两类清理操作:

  • 清理所有已删除仓库关联的镜像数据(包括有标签和无标签的)
  • 清理所有无标签(悬空)镜像——无论这些镜像属于正常存在的仓库还是已删除的仓库

也就是说,默认GC会把所有无标签镜像都删掉,不符合你「保留其他仓库无标签镜像」的需求。

满足需求的手动处理方案

要实现「仅清理已删除仓库的镜像,保留正常仓库无标签镜像」的目标,需要放弃默认GC,按以下步骤操作:

  1. 定位已删除仓库的存储目录:Harbor的镜像存储默认路径为/data/registry/docker/registry/v2/repositories/,已删除的仓库目录会保留但在Harbor UI中不可见,可通过对比UI中存在的仓库列表来筛选需要删除的目录。
  2. 停止Harbor服务:
    docker-compose down
    
  3. 手动删除已删除仓库的存储目录:直接删除对应仓库的目录(注意不要误删正常仓库的目录)。
  4. 执行带参数的Registry GC:使用Registry官方镜像执行GC,添加--delete-untagged=false参数跳过无标签镜像的清理:
    docker run --rm -v /data/registry:/var/lib/registry registry:2 garbage-collect --delete-untagged=false /etc/docker/registry/config.yml
    
  5. 重启Harbor服务:
    docker-compose up -d
    

注意事项

  • 操作前务必备份Harbor的存储数据,避免不可逆的误删。
  • 若为集群部署的Harbor,需确保所有节点的存储目录同步处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:42:12