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拉取鏡像了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章