一、场景描述
当我们的项目从传统项目改造成容器化运行的项目时,必然我们都会使用到docker、registry这些东西,而开源的私有registry则是harbor最为火热,但是我们再频繁的上传镜像的时候,同样面临的一个问题就是这些存储的镜像越来越多,服务器磁盘资源早晚会被占满,从而导致镜像无法上传,为了解决这个问题我们就需要设置相应的镜像保留策略来删除那些已经不再使用的镜像层,从而释放服务器磁盘空间。
二、添加规则
Harbor在1.9
版本中增加了TAG保留策略,这样我们就可以通过配置镜
2.1:选择项目
- 选择我们需要配置保留策略的项目

2.2:配置策略
- 进入到某个项目下添加保留策略。保留策略针对是某个项目的不是全部的项目

- 注意:这里经过测试,发现保留规则中直接写项目的仓库名称,执行保留策略并不生效,解决方法是将保留策略改成
**
或者直接写某个项目的镜像仓库名称
,如下图所示

2.3:定时执行

三、测试验证
- 下面我们点击模拟运行,查看执行记录

- 注意:UI上执行TAG删除是比较慢的;并且
文章来源(Source):https://www.dqzboy.com 这里配置TAG删除并不会真正释放掉磁盘空间,还需要我们通过清理GC的方式进行清理blob
四、释放空间
- 查看原先的占用磁盘空间

- 首先停止harbor,防止在执行过程中有人上传镜像导致镜像损坏
[root@harbor v2]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose stop
- 查看harbor的待删除
#下面的命令直接在宿主机上执行,会下载并运行registry容器,然后执行对应的命令
[root@harbor harbor]# 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

- 运行删除历史镜像释放空间
[root@harbor harbor]# docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect /etc/registry/config.yml

- 重新启动harbo程序
[root@harbor v2]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose up -d
- 检查磁盘空间
文章来源(Source):浅时光博客 是否释放
[root@harbor v2]# df -h

必须 注册 为本站用户, 登录 后才可以发表评论!