在我们搭建完 Harbor 后:
如果想要通过 API 获取 Harbor 上面的镜像及 tag 可以使用下面整理的脚本:cat get_images.sh #!/bin/bashUSER="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 $rtokenrlist=$(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 的地址
运行结果:
获取到 images 后,可以进一步查看镜像的 tag:
cat get_tag.sh #!/bin/bashUSER="admin"PASS="Harbor12345"HURL="http://192.168.0.241"MTAG=$1ttoken=$(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 $ttokentlist=$(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 需传入一个镜像名字,上一脚本输出的结果
运行结果:
脚本还有很多可以完善的地方,这里就不做讨论了~ 该脚本也适用于部署了 https 证书的 Harbor 需要把 HURL 中的变量改成 https 即可。