Harbor镜像删除空间回收

Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间。直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像。需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和回收。

1、首先,删除Harbor的UI中的存储库。这是软删除。您可以删除整个存储库或仅删除它的标签。软删除后,Harbour中不再管理存储库,但是存储库的文件仍然保留在Harbour的存储中。
这里写图片描述
2、接下来,使用注册表的垃圾回收(GC)删除存储库的实际文件。在执行GC之前,确保没有人推送图像或Harbour根本没有运行。如果有人在GC运行时推送镜像,则存在镜像层被错误删除的风险,从而导致镜像损坏。所以在运行GC之前,首选的方法是先停止Harbour。
第一步:

cd /usr/local/harbor
docker-compose stop

这里写图片描述
第二步:
在部署Harbour的主机上运行以下命令以预览会影响哪些文件/镜像
注:上述选项”–dry-run”将打印进度而不删除任何数据。

docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect --dry-run /etc/registry/config.yml

这里写图片描述
验证上述测试的结果,然后使用以下命令执行垃圾回收并重新启动Harbour。

docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect /etc/registry/config.yml

这里写图片描述
3、重启harbor各组件镜像

docker-compose start

最后验证:
a:du -sh /data/registry/docker/registry/v2/blobs&repositories和之前该目录文件大小做对比
b:重新上传之前删除的镜像,如没成功删除会报镜像已存在,能成功上传则一切ok,恭喜
这里写图片描述

参考
https://github.com/vmware/harbor/blob/master/docs/user_guide.md#deleting-repositories

猜你喜欢

转载自blog.csdn.net/kong2030/article/details/81331142