(十七)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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具