harbor批量導出鏡像


工作中遇到一個問題,要把某個項目的harbor鏡像庫全部遷移到其他環境的harbor上,由於網絡不通,只能導出來,傳給同事,讓同事導入到他們的harbor上;
記錄下我的操作方法。

參考博客園的一篇博客,Harbor API操作:

1.批量導出harbor某個項目的鏡像庫

## 查到harbor的項目編號
curl -X GET --header 'Accept: application/json' 'http://192.168.10.16/api/search?q=paas-k8s'


#!/bin/bash

URL="http://192.168.10.16"
IP="192.168.10.16"
USER="admin"
PASS="fana"

REPOS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories?project_id=3"|grep "name"|awk -F '"' '{print $4}')
for rp in ${REPOS}
do
  TAGS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories/${rp}/tags"|grep \"name\"|awk -F '"' '{print $4}'|sort -r)
  a=$(echo ${rp}|awk -F "/" '{print $2}')
    for t in ${TAGS}
    do
        docker pull ${IP}"/"${rp}":"${t}
        echo ${IP}"/"${rp}":"${t} >> /opt/docker.tag
        docker save ${IP}"/"${rp}":"${t} > /opt/docker/${IP}-${a}-${t}.tar.gz
    done
    echo "===================="
done

2.批量導入到images

for i in `ll /opt/docker|awk '{print $9}'`;do docker load < $i;done

3.批量push到harbor

for i in `docker images|awk '{print $1}'|grep -v REPOSITORY`;do docker push $i; done

#或

for i in `cat /opt/docker.tag`;do docker push $i;done


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM