背景:
我们经常会遇到使用docker pull 下载公有镜像,比如dockerhub的image ,然后重新tag 推送到自建仓库,比如harbor ,这是一个高频动作,所以可以使用脚本来实现
脚本:
#! /bin/bash
# The ami of this script is changing pubilc image to privte harbor's
#example :kubesphere/ks-apiserver:advanced-2.0.2
set -ex
input_info=$1
image_name=`echo $input_info | awk -F ':' '{ print $1 }' | awk -F '/' '{ print $NF }'`
image_tag=`echo $input_info | awk -F ':' '{ print $2 }'`
harbor_registry='192.168.200.50/project_name'
function docker_pull(){
docker pull $input_info
}
function docker_tag(){
docker tag $input_info ${harbor_registry}/${image_name}:${image_tag}
}
function docker_push(){
docker push ${harbor_registry}/${image_name}:${image_tag}
}
function docker_rmi(){
#delete the pubilc image
docker rmi $input_info
}
docker_pull
docker_tag
docker_push
docker_rmi
if [[ $? -eq 0 ]] ;then echo "changing pubilc image to privte harbor's is done!"; fi
用法:
1.修改harbor_registry 为自己的registry
2.sh auto_image_push.sh 镜像名称即可
例如 docker pull kubesphere/ks-apiserver:advanced-2.0.2
本文介绍了一个用于自动化将Docker公有镜像拉取并重新标记后推送至自建Harbor仓库的bash脚本。通过该脚本,用户只需提供镜像名称,即可完成从DockerHub拉取、标记、推送至Harbor及删除本地公有镜像的整个流程。
1417

被折叠的 条评论
为什么被折叠?



