Personal learning records
docker备份恢复
docker备份恢复

docker备份恢复

dockerback.sh

#!/bin/bash
#执行时位置变量为$1或$2

save(){
if [ ! -d “./images” ]; then
mkdir images
fi

#以镜像id,仓库地址,版本号,大小输出到txt文件中
cd images
docker images –format “{{.ID}} {{.Repository}}:{{.Tag}} {{.Size}}” > images_pull.txt
#按行读取txt文件进行处理,一行类似于 “004811815584 k8s.gcr.io/etcd:3.5.0-0 295MB”
while read line
do
image_id=`echo $line | awk ‘{print $1}’`
image_repository=`echo $line | awk ‘{print $2}’`
image_size=`echo $line | awk ‘{print $3}’`
#docker -o将文件保存到一个文件中
docker save -o $image_id.tar $image_repository && \
echo “Image $image_repository saved, size $image_size”
done < images_pull.txt
}

#根据txt中的信息,按行加载上一步保存的镜像文件
load(){
cd images
while read line
do
image_id=`echo $line | awk ‘{print $1}’`
image_repository=`echo $line | awk ‘{print $2}’`
docker load -i $image_id.tar && \
echo “Image $image_repository loaded”
done < images_pull.txt
}

if [ -z “$1” ]; then
echo “Usage: image_operation.sh [save|load]”
fi

$1

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注