(十七)VMware Harbor 垃圾清理

1. 在线垃圾清理

注意:从Harbor中删除镜像时不释放空间,垃圾收集是通过从清单中不再引用文件系统中删除blob来释放空间的任务。

注意:在执行垃圾收集时,Harbor将进入只读模式,并且禁止对docker注册表进行任何修改。

垃圾清理定时任务:

1.无

2.每天

3.每周

4.每小时

5.自定义

history

显示垃圾回收记录

 

 离线-Harbor镜像删除空间回收

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

1、首先,删除Harbor的UI中的存储库。这是软删除。您可以删除整个存储库或仅删除它的标签。软删除后,Harbour中不再管理存储库,但是存储库的文件仍然保留在Harbour的存储中。 

2、接下来,使用注册表的垃圾回收(GC)删除存储库的实际文件。在执行GC之前,确保没有人推送图像或Harbour根本没有运行。如果有人在GC运行时推送镜像,则存在镜像层被错误删除的风险,从而导致镜像损坏。所以在运行GC之前,首选的方法是先停止Harbour。

第一步:停止Harbor

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://www.tuicool.com/articles/2QVBvyA

参考:https://blog.csdn.net/kong2030/article/details/81331142

参考:http://www.itboth.com/d/U367Vz/docker

posted @ 2019-07-01 14:18  sixinshuier  阅读(2188)  评论(0编辑  收藏  举报