请仔细阅读脚本提示
#!/bin/bash
echo -e "\e[1;31m|-----------------------------------------------------|\e[0m"
echo -e "\e[1;31m|*****操作之前请确认本脚本与docker-compose.yml文件同目录****|\e[0m"
echo -e "\e[1;31m|********并且确认已经更新了最新的docker-compose文件********|\e[0m"
echo -e "\e[1;31m|**********如已更新请继续,如未更新请先更新再继续!!*********|\e[0m"
echo -e "\e[1;31m|-----------------------------------------------------|\e[0m"
echo ""
echo "请选择操作:"
echo "1. 导出镜像"
echo "2. 导入镜像"
read choice
if [ $choice -eq 1 ]; then
echo "请输入导出文件名:"
read filename
images=($(docker-compose config | awk '/image:/ {print $2}'))
if [ ${#images[@]} -eq 0 ]; then
echo "没有找到任何镜像!"
exit 1
fi
for image in "${images[@]}"
do
echo "正在备份镜像:$image"
docker pull "$image"
done
echo "正在导出镜像到文件:$filename-$(date +"%Y-%m-%d_%H-%M-%S").tar"
docker save "${images[@]}" -o "$filename"-$(date +"%Y-%m-%d_%H-%M-%S").tar
echo "导出完成!"
elif [ $choice -eq 2 ]; then
files=($(ls *.tar))
if [ ${#files[@]} -eq 0 ]; then
echo "当前目录中没有找到任何tar文件!"
exit 1
fi
echo "请选择要导入的文件:"
select file in "${files[@]}"; do
if [ -n "$file" ]; then
echo "正在导入镜像..."
docker load -i "$file"
echo "导入完成!"
break
else
echo "无效的选择!"
fi
done
else
echo "无效的选择!"
fi