Docker镜像的备份和迁移以及容器启动

项目最近docker用的比较多,经常会用到镜像的打包和部署,编写一下shell脚本方便镜像的快速保存和加载。

1.docker镜像的快速保存

#/bin/bash
for i in "$@"
do
 echo -e "\033[0;30;42m ########## << 镜像 $i 开始保存 >> #########\033[0m\n"
 image=$(docker ps -a | grep $i | awk '{print $2}')
 echo -e "\033[0;30;42m ########## << 保存的镜像为 ¥image >> #########\033[0m\n"
 docker save $image | gzip > $i-${image##*:}.tar.gz
 echo -e "\033[0;30;42m ########## << 镜像 $i 保存成功 >> #########\033[0m\n"
done

使用方法:

vim saveImages.sh       #编辑一个脚本文件,把上面的shell复制进去
chmod u+x saveImages.sh #赋权
./saveImages.sh crm erp #crm和erp为当前启动容器的名称,可以跟多个,空格分隔
#执行完就可以看到镜像会打包到当前文件夹下

2.docker镜像的快速加载

#load当前目录下所有*tar.gz镜像文件
path=$1
files=$(ls $path)
for filename in $files
do
 if [[ $filename == *.gz ]];then
 	echo -e "\033[0;30;42m ########## <<	开始load镜像 $filename		>> ##########\033[0m\n"
    gunzip -c $filename | docker load
    echo -e "\033[0;30;42m ########## <<	load镜像完成 $filename		>> ##########\033[0m\n"
 fi
done

使用方法:

vim loadImages.sh       #编辑一个脚本文件,把上面的shell复制进去
chmod u+x loadImages.sh #赋权
./loadImages.sh         #执行此命令前,将上一个命令保存的镜像文件拷贝到此脚本的同文件夹下,运行即可加载所有镜像

3.容器的启动

docker run --network mysql-network --env MODE=standalone --restart=always \
--name=nacos -d -p 8848:8848 \
-v /home/nacos/logs:/home/nacos/logs \
-v /home/nacos/conf:/home/nacos/conf \       
nacos/nacos-server:1.4.1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值