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