1、镜像
1.1,下载并保存镜像
#!/usr/bin/bash
SAVE_IMAGE_DIR="images_dir"
OLD_REPOSITORY="abc.zhangsan.com"
NEW_REPOSITORY="def.zhangsan.com"
if [ $# -ne 1 ];then
echo "Usage: sh $0 images.csv"
exit -1
fi
if [ ! -d $SAVE_IMAGE_DIR ];then
mkdir -p $SAVE_IMAGE_DIR
fi
function save_image () {
cat $1 | egrep -v "^#|^$" | awk -F"," '{print $1}' | while read line
do
new_image_name=`echo $line | sed "s#${OLD_REPOSITORY}#${NEW_REPOSITORY}#g"`
save_image_name=`echo $line | awk -F/ '{ print $NF}' | tr ':' '-' `
echo "docker pull $line"
docker pull $line
if [ $? -eq 0 ];then
echo "docker tag $line $new_image_name"
docker tag $line $new_image_name
if test $? -eq 0 ;then
echo "docker save $new_image_name > ${save_image_name}.tar "
docker save $new_image_name > ${SAVE_IMAGE_DIR}/${save_image_name}.tar.gz
fi
else
echo "$line is pull error"
exit -1
fi
done
}
save_image $1
1.2、pull tag push
OLD_REPOSITORY=""
NEW_REPOSITORY=""
OLD_IMAGE="$1"
NEW_IMAGE=`echo $1 | sed "s/${OLD_REPOSITORY}/${NEW_REPOSITORY}/"`
if [ $# -ne 1 ];then
echo "Usage: sh $0 imageName"
exit -1
fi
docker pull $NEW_IMAGE
docker tag $NEW_IMAGE $OLD_IMAGE
docker push $OLD_IMAGE
1.3、images-pull-tag-push.sh 通过文件
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage: sh $0 images.csv"
exit -1
fi
OLD_REPOSITORY1=""
OLD_REPOSITORY2=""
OLD_REPOSITORY3=""
NEW_REPOSITORY=""
sed -i "s/${OLD_REPOSITORY2}/${OLD_REPOSITORY1}/" $1
sed -i "s/${OLD_REPOSITORY3}/${OLD_REPOSITORY1}/" $1
for OLD_IMAGE in `egrep -v "^#|^$" $1 | awk -F, '{print $1}'`
do
docker pull $OLD_IMAGE
NEW_IMAGE=`echo $OLD_IMAGE | sed "s/${OLD_REPOSITORY1}/${NEW_REPOSITORY}/"`
docker tag $OLD_IMAGE $NEW_IMAGE
docker push $NEW_IMAGE
done
2、chart
2.1、下载
#!/bin/bash
LOCAL_REPO=""
if [ $# -ne 1 ];then
echo "Usage:sh $0 charts.csv"
exit -1
fi
while read i
do
CHART_NAME=`echo "$i" | grep -v "#" | awk -F, '{print $1}'`
CHART_VERSION=`echo "$i" | grep -v "#" | awk -F, '{print $2}'`
helm pull ${LOCAL_REPO}/${CHART_NAME} --version ${CHART_VERSION}
done<$1