环境说明:
docker需要登录harbor
需要提前处理好镜像清单,清单里面不能含有不需要处理的镜像
处理脚本如下:
#!/bin/bash
#镜像处理脚本
#功能说明:
#1.从镜像清单里面获取镜像列表进行拉取镜像
#2.修改镜像tag,重新给镜像打tag
#3.将新tag的镜像push到harbor
#镜像清单images-trs-hrmty.txt存到数组
IMAGES_ARRAY=($(cat images.txt))
old_tag='zmy-test'
new_tag='zmy-prod'
#计数器
count=1
#循环遍历镜像列表
for image in ${IMAGES_ARRAY[@]};do
#拉取镜像
echo "拉取第${count}个镜像: ${image}"
docker pull ${image}
#新镜像名
new_image=${image/${old_tag}/${new_tag}}
#给镜像打新tag
echo "打新镜像tag: ${new_image}"
docker tag ${image} ${new_image}
#推送新镜像
echo "推送新镜像: ${new_image}"
docker push ${new_image} || exit $?
#清理旧镜像
docker rmi ${image}
count=$((count+1))
done
仅作为参考