[转帖]harbor镜像仓库清理操作

harbor,镜像,仓库,清理,操作 · 浏览次数 : 0

小编点评

## Harbor镜像清理过程概述 **问题:** * 两年前清理过一次harbor镜像,而现在又要面临清镜像的操作了。 * 现有的harbor镜像仓库约200T,且该存储池是两副本,那么占用空间是400T左右。 **解决方案:** 1. **提前清理老版本 Harbor 镜像:** * 由于 Harbor 镜像仓库过大,需要清理老版本镜像以释放空间。 * 清理之前需要注意一些注意事项,包括下文提到的点 1 和点 2。 2. **在线垃圾清理 (gc3):** * 使用 `gc3` 命令进行清理。 * 清理过程中,harbor仓库处于只读状态,不可推镜像。 * 可以在 `gc3` 命令中看到清理任务的进度。 3. **删除镜像:** * 使用 WebUI 中的删除功能删除镜像。 * 删除成功后,会进行提示,确认是否要释放空间。 * 注意删除只是逻辑上的删除,并不会真正释放空间,需要进行垃圾清理。 4. **垃圾清理:** * 点击“垃圾清理”。 * 等待清理完成。 5. **验证空间释放:** * 在 `/storage/docker/registry/v2` 下,查看空间大小是否释放了。 * 使用 `du -sm *438` 命令验证释放空间。 **注意事项:** * 清理之前请确保拥有必要的权限。 * 不要中断gc3 或垃圾清理操作。 * 清理完成后,请确保确认空间已释放。 **其他提示:** * 可以使用 `docker system df` 命令查看系统中镜像的占用空间。 * 可以使用 `docker ps -a` 命令查看正在运行的容器,以便删除它们。

正文

https://www.cnblogs.com/FengGeBlog/p/15517706.html

 

两年前清理过一次harbor镜像,而现在又要面临清镜像的操作了,笔者目前所在的公司镜像是存放在ceph集群内部的,目前约200T,且该存储池是两副本,那么占用空间是400T左右。真的是相当浪费空间了。
harbor镜像仓库由于过大,需要清理老版本镜像,以释放空间。清理之前有一些需要注意事项,提前说一下
1、太老版本的harbor可能不带有清理机制(也就是下文讲的清理操作)
2、清理期间harbor仓库处于只读状态,期间不能推镜像,但可以拉镜像。清理的过程也称为gc
3、生产环境当中的harbor只读是不被允许的,因此开发出在线不停服gc的功能会更加受用(目前网上没有找到该案例,需要自己研发)

实践过程如下:

1、现在仓库有如下镜像

2、harbor镜像仓库存放的位置

一般上来说,harbor本身就是由docker跑起来的。harbor的数据存储是在容器goharbor/harbor-registryctl当中。进入到这个容器内部,找到/storage/docker/registry/v2目录,可以看到blobs和repositories两个目录。如下所示:

root [ /storage/docker/registry/v2 ]# du -sm *
1140    blobs
1       repositories

实际上,容器内部的/storage/docker/registry/v2目录对应的是宿主机上的/data/registry/docker/registry/v2目录。
当我们推上去一个镜像的时候,blobs目录的大小会随之发生变化,至于增大多少空间,取决于你在harbor里面看到的镜像大小,如图所示:

大约是702MB。所以上面看到的blobs目录的大小就是在推上去一个gitlab镜像后,由原来的438MB增长到现在的1140MB

3、开始清理

清理操作我们可以在harbor的webUI界面上来点点进行删除,镜像超级多的时候就是有点费手。

选中并删除,删除成功后会在右侧进行提示。但是这种删除只是逻辑上的删除,并不会真正释放空间,可以去/storage/docker/registry/v2验证一下看看,空间还是没有释放。所以还需要下面的一步

4、垃圾清理(在线gc)

点击进行垃圾清理操作,期间会在下面生成一个清理任务。注意清理期间harbor仓库处于只读状态,此时不可推镜像。

显示已完成表示清理成功了

5、验证空间是否释放

此时再去查看空间

root [ /storage/docker/registry/v2 ]# du -sm *
438     blobs
1       repositories

发现空间释放了。

与[转帖]harbor镜像仓库清理操作相似的内容:

[转帖]harbor镜像仓库清理操作

https://www.cnblogs.com/FengGeBlog/p/15517706.html 两年前清理过一次harbor镜像,而现在又要面临清镜像的操作了,笔者目前所在的公司镜像是存放在ceph集群内部的,目前约200T,且该存储池是两副本,那么占用空间是400T左右。真的是相当浪费空间了

[转帖]实用小技能:一键获取Harbor中镜像信息,快捷查询镜像

【摘要】一键获取Harbor中的镜像列表,无需登录harbor UI,也可批量下载镜像到本地并保存为tar包。本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接: https://github.com/weopenprojects/WeOpen-Star 前言 我们要查询Harbor中某个项

[转帖]k8s对接ceph,ceph-csi方式

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器 2.加载 ceph-csi-image里面的镜像 3.将加载好的镜像上传到本地harbor上。 4.修改ceph-csi-yaml文件夹里面的 yaml文件内容 k8s对接ceph离线安装包 #csi-config

[转帖]harbor 更改网段(docker-compose)

`https://blog.csdn.net/Darkernote/article/details/119390862` 问题:harbor 安装后网段冲突 docker-compose 一般安装会创建一个默认的网桥ip为172.17,18有和公司网络冲突的可能 解决方案: 一、 查看docker

[转帖]harbor-db restarting问题

现象: 在安装harbor后,启动时发现harbor-db 一直是restarting,/harbor-jobservice,/harbor-core 这两是starting 状态,如下图 解决: 1.查看你的数据库的挂载目录(对应的宿主机目录)是什么,去你的harbor的安装目录,例如我的是usr

[转帖]Harbor:修改默认的172网段

背景: harbor 默认启动会随机创建 172 网段的ip地址,跟集群规划的网段冲突 Harbor 网段修改步骤 0. 原来Harbor占用的网段 # 网桥名:harbor_harbor [root@gpunode2 test]# docker network ls NETWORK ID NAME

[转帖]解决Harbor在服务器重启后无法自启动的问题

问题 当部署Harbor的服务器在重启之后,可能会出现Harbor无法跟随系统自启动 解决方案 现假设Harbor的安装目录位置为/usr/local/harbor,在Harbor安装完成之后,在此目录下会生成docker-compose.yml配置文件,可以使用docker-compose操作此文

[转帖]「开源摘星计划」Prometheus监控Harbor(二进制版)

推荐 原创 键客李大白2022-08-08 11:35:07博主文章分类:Harbor进阶实战(企业实战)©著作权 文章标签云原生运维Harbor文章分类kubernetes云计算私藏项目实操分享阅读数10000+ 本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:​ ​https://g

[转帖]docker报错:报错br-xxxx 之Docker-Compose 自动创建的网桥与局域网络冲突

https://www.dianjilingqu.com/653590.html 故障描述: 当我使用docker-compose的方式部署内网的harbor时。它自动创建了一个bridge网桥,与内网的一个网段(172.18.0.1/16)发生冲突,docker 默认的网络模式是bridge ,默

[转帖]Docker-Compose 自动创建的网桥与局域网冲突解决方案

https://zhuanlan.zhihu.com/p/379305319 Docker-Compose 自动创建的网桥与局域网冲突解决方案 当我使用docker-compose的方式部署内网的harbor时。它自动创建了一个bridge网桥,与内网的一个网段(172.18.0.1/16)发生冲突