harbor镜像列表的获取

前言


我们都知道可以通过接口来获取镜像的信息,但是格式方面比较麻烦,如果要直接pull某个镜像还得对命令进行拼接。下面分享的是通过命令行获取harbor镜像列表。

如果获取不了信息或无法拉取镜像,建议从下方查找问题:
与harbor的网络联通
hurbor域名是否绑定
账号或密码是否正确
docker 的daemon.json文件中insecure-registries是否配置正确


#!/bin/bash
#查看hurbor可提供镜像

USER="admin"             #填入账号
PASS="23fn@!#ffd"        #填入密码
TOU="harbor.com"         #填入访问网址或ip
HURL="https://$TOU"      #此脚本是https协议的,可修改为http



token=$(curl -k -s  -u ${USER}:${PASS} ${HURL}/service/token?account=${USER}\&service=harbor-registry\&scope=registry:catalog:*|grep "token" |awk -F '"' '{print $4}')

image_list=$(curl -k -s -H "authorization: bearer $token " ${HURL}/v2/_catalog|awk -F '[' '{print $2}'|awk -F ']' '{print $1}'|sed 's/"//g')

echo $image_list |sed 's/,/\n/g' > images_list.txt 

> hub_images_list.txt

for i in `cat images_list.txt`
do

	tag_token=$(curl -iksL -X GET -u $USER:$PASS $HURL/service/token?account=${USER}\&service=harbor-registry\&scope=repository:${i}:pull|grep "token" |awk -F '"' '{print $4}')

	tag_list=$(curl -ksL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $tag_token" ${HURL}/v2/${i}/tags/list|awk -F '[' '{print $2}'|awk -F ']' '{print $1}'|sed 's/"//g')
        
    echo $tag_list |sed 's/,/\n/g' > hub_tag.txt
        
	for tag in `cat hub_tag.txt`
	do
	    
        echo "$TOU/$i:$tag" >> hub_images_list.txt

    done
done

rm -rf images_list.txt
rm -rf hub_tag.txt


效果(不方便截图,了解即可):

cat hub_images_list.txt

harbor.com/library/calico-cni:v3.1.6

这样就方便使用pull拉取镜像了

你可能感兴趣的:(harbor镜像列表的获取)