【转】harbor删除无用镜像

1、Harbor 搜索镜像及查看 tag

1、如果想要通过 API 获取 Harbor 上面的镜像及 tag 可以使用下面整理的脚本:

cacat get_images.sh 
#!/bin/bash
USER="admin"
PASS="Harbor12345"
HURL="http://192.168.0.241"
 
rtoken=$(curl -k -s  -u ${USER}:${PASS} ${HURL}/service/token?account=${USER}\&service=harbor-registry\&scope=registry:catalog:*|grep "token" |awk -F '"' '{print $4}')
 
#echo $rtoken
 
rlist=$(curl -k -s -H "authorization: bearer $rtoken " ${HURL}/v2/_catalog|awk -F '[' '{print $2}'|awk -F ']' '{print $1}'|sed 's/"//g')
 
echo $rlist|sed 's/,/\n/g'
 
# 解析一下变量:
USER="admin"                 Harbor 的用户名
PASS="Harbor12345"           Harbor 的密码
HURL="http://192.168.0.241" Harbor 的地址

运行结果为:

 

 

2、获取到 images 后,可以进一步查看镜像的 tag:

cacat get_tag.sh 
#!/bin/bash
USER="admin"
PASS="Harbor12345"
HURL="http://192.168.0.241"
MTAG=$1
 
ttoken=$(curl -iksL -X GET -u $USER:$PASS $HURL/service/token?account=${USER}\&service=harbor-registry\&scope=repository:${MTAG}:pull|grep "token" |awk -F '"' '{print $4}')
 
#echo $ttoken
 
tlist=$(curl -ksL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $ttoken" ${HURL}/v2/${MTAG}/tags/list|awk -F '[' '{print $2}'|awk -F ']' '{print $1}'|sed 's/"//g')
 
 
echo $tlist|sed 's/,/\n/g'
 
# 解析一下变量:
USER="admin"                 Harbor 的用户名
PASS="Harbor12345"           Harbor 的密码
HURL="http://192.168.0.241"  Harbor 的地址
MTAG=$1                      需传入一个镜像名字,上一脚本输出的结果

 

运行结果为:

 

 

2、harbor上删除镜像不释放空间问题

在HarborUI界面删除镜像,但磁盘空间并未释放,只是镜像文件的映射关系,还需要通过GC来删除:

2.1 停止harbor:

docker-compose stop  

2.2 带有–dry-run选项,打印即将被除的镜像文件,但不删除

vmware/registry:2.6.2-photon为在harbor上可以pull下来的镜像
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml

 

2.3 不带–dry-run选项,直接执行删除:

docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml

2.4 启动Harbor:

docker-compose start

 

posted @ 2020-03-05 15:06  Zero116  阅读(854)  评论(0编辑  收藏  举报