docker: 镜像自动推送私有仓库

背景:
我们经常会遇到使用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)