harbor镜像仓库空间的清理方法

前言

随着harbor的使用,导致harbor的磁盘空间不足.需要进行清理,以下是镜像仓库清理方法
在这里插入图片描述

一、harbor界面中设置仓库策略的清理方法

登录harbor镜像仓库,点击仓库名–>策略

在这里插入图片描述
在这里插入图片描述

策略支持多个规则,我这里选择的是第一个默认规则,保留最近推送的5个。然后执行的频率是每周,这个频率看每个人的使用场景。

在这里插入图片描述
在这里插入图片描述

在使用模拟运行确认无误后,一定会要点击“立即运行”。但是运行完成后,持续时间是4秒,可harbor的存储空间并无变化。(仍旧是49GB)
这种方法若是行不通则继续看下面的方法!!!

二、清理服务

登录harbor镜像仓库,点击清理服务–>垃圾清理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击“立即清理垃圾”,看到下面的任务记录。执行立即清理垃圾后,观察镜像库library/icity 的数量,可以看出,最早的标签已被清理。

三.通过harbor gc执行清理操作

该方法也是面试时面试官问到的一个方法,是否操作过harbor的gc清理,因为实际生产环境中的项目并没有使用该方法操作过,因此在面试后进行了学习并记录,希望可以帮到大家

1、执行如下的前提是必须保证harbor是处于stop状态,而不能是down状态
	docker-compose stop
2、执行
	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 (--dry-run是打印进度而不删除任何数据)
	谨记: 如果是down状态,则会报错docker: Error responsefrom daemon: No such container: registry.
3、执行
	docker run -it --name gc --rm  --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect  /etc/registry/config.yml
	当执行这步操作后,如果发现磁盘空间并未减少多少,则只能证明垃圾回收针对删除的image是起作用的,而harbor的blobs依然会占用很大空间并未释放。

为什么harbor空间中的blobs会占用这么大空间呢?

	Harbor删除镜像后且GC清理后,磁盘空间没有释放。因为我们push大量相同标签的镜像,Docker 镜像由标签引用,
并由唯一的摘要标识。这意味着如果myImage使用标记推送两个图像,在DR内部他们显示的不同,它们将由两个不同的digests标识。
最后推送的Images是当前的。Docker 镜像由layers组成,每个layers都关联一个blob。该blob是最占用存储的文件; 这些文件将由GC清理。正由上面的描述每个镜像都会存储一个引用,假如,我们重复提交10次,那一个标签在DR中会有10个引用,标签只能获取tag。而其他9个只能用digest获取了。
	因此,简单的来说就是因为相同的标签的镜像重复提交次数过多导致blobs占用空间越来越大。

怎么清理harbor中blobs占用的空间呢?

1、通过向docker-compose.yml中添加:
	ports:
	  -127.0.0.1:5000:5000
2、执行以下命令,自行提前拉取该镜像mortensrasmussen/docker-registry-manifest-cleanup
	docker pull mortensrasmussen/docker-registry-manifest-cleanup 如下图所示
	docker run --network="host" -it -v /data/registry:/registry -e REGISTRY_URL=http://127.0.0.1:5000 mortensrasmussen/docker-registry-manifest-cleanup
	3、执行后会清理掉已删除且未使用的那些blobs,如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过对比,可以发现释放了将近10G的磁盘空间容量


  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Harbor 是一个开源的云原生镜像仓库,支持 Docker 和 Kubernetes。搭建 Harbor 镜像仓库可以方便地管理和部署 Docker 镜像。 以下是 Harbor 镜像仓库的搭建步骤: 1. 安装 Docker 和 Docker Compose 首先需要在服务器上安装 Docker 和 Docker Compose,可以参考 Docker 官方文档进行安装。 2. 下载并解压 Harbor 安装包 在 Harbor 的官网上下载最新版本的 Harbor 安装包,解压到服务器上的任意目录。 3. 配置 Harbor 进入 Harbor 安装包所在目录,编辑 `harbor.cfg` 文件,配置相关参数,例如: ``` hostname = example.com ui_url_protocol = https harbor_admin_password = StrongPassword ``` 这里的 `hostname` 是 Harbor 的访问地址,`ui_url_protocol` 是访问协议,`harbor_admin_password` 是管理员密码。 4. 启动 HarborHarbor 安装包所在目录下执行以下命令启动 Harbor: ``` docker-compose up -d ``` 这会启动 Harbor 的所有组件,并且在后台运行。 5. 配置 Docker 客户端 在需要使用 Harbor 镜像仓库的客户端机器上,编辑 Docker 配置文件 `/etc/docker/daemon.json`,加入以下内容: ``` { "insecure-registries": ["example.com"] } ``` 这里的 `example.com` 是 Harbor 的访问地址。 6. 登录 Harbor 在客户端机器上执行以下命令登录 Harbor: ``` docker login example.com ``` 这里的 `example.com` 是 Harbor 的访问地址。 7. 使用 Harbor 登录成功后,就可以使用 Harbor 镜像仓库了,例如: ``` docker pull example.com/library/nginx:latest docker push example.com/library/nginx:latest ``` 这里的 `library/nginx` 是一个示例镜像,可以替换成其他镜像。 以上是 Harbor 镜像仓库的搭建步骤,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值