Docker 镜像批量导入导出脚本
Docker 镜像批量导入导出脚本
docker 批量导出镜像的sh文件,export-images.sh
#导出全部的镜像;
sh export-img.sh
#导出部分镜像
LIST=“ d235b 201c7a 201c7a”
sh export-img.sh
注意:LIST赋值Docker Images ID ,多个镜像ID通过空格隔离;执行脚本是只会导出定义ID的镜像
export-image.sh内容
LIST=""
TXT=/root/tmp.txt
BAKDIR=/usr/local/bak
LOGDIR=/usr/local/bak/log
LOGFILE=$LOGDIR/bak.`date +%Y%m%d`.log[ ! -d $BAKDIR ] && mkdir -p $BAKDIR
[ ! -d $LOGDIR ] && mkdir -p $LOGDIRif [ -n "$LIST" ]
thenfor list in $LISTdoRESLIST=`docker images |grep $list | awk '{print $1}'`for reslist in $RESLISTdoRESTAG=`docker images |grep "$reslist" |awk '{a=$1":"$2;print a }'`BAKNAME=`docker images |grep "$reslist" |awk '{a=$1":"$2;print a }'|sed 's/\//_/g'`/usr/bin/docker save $RESTAG -o $BAKDIR/$BAKNAME.tar >> $LOGFILE 2>&1donedone
elseREC=`docker images |awk '{print $1,$2,$3}'|sed 1d >> $TXT`RESLIST=`cat $TXT|awk '{print $1}'`for reslist in $RESLISTdoRESTAG=`docker images |grep "$reslist" |awk '{a=$1":"$2;print a }'`BAKNAME=`docker images |grep "$reslist" |awk '{a=$1":"$2;print a }'|sed 's/\//_/g'`/usr/bin/docker save $RESTAG -o $BAKDIR/$BAKNAME.tar >> $LOGFILE 2>&1done/usr/bin/rm -f $TXT
fiif [ -s $LOGFILE ]
thenecho -e "\033[31mERROR:Images Backup Failed!\033[0m"echo -e "\033[31mPlease View The Log Lile : $LOGFILE\033[0m"
else/usr/bin/rm -f $LOGFILE
fi
docker 批量导入镜像的sh文件
- 支持传参数导入
# 注意:多个tar文件使用空格分隔;
sh import.sh "nacos.tar redis.tar"
- 支持脚本定义导入镜像名称
vi import.shSTATE="ImgName1 ImgName2 ImgName3 ...."sh import.sh
- 支持指定目录导入镜像
vi import.sh
TARDIR="/usr/local/bak"
sh import.sh
- 支持镜像导入前备份当前镜像
# 注意:需要备份时输入字母Y,不区分大小写,不需要备份没有严格的指定,
# 只要不是字母Y都可以作为否定备份;
# 如果同时在脚本中指定导入镜像,又在指定脚本时指定导入镜像名称,
# 默认使用以脚本定义导入镜像名称;
sh import.sh
Whether to backup the current images[y/n]:[y/Y]
import.sh 内容
#!/bin/shSTATE=""
RECEIVE=$1
TARDIR="/root"
SUFFIX="*.tar"
LIST=`ls $TARDIR/$SUFFIX`
LOGFILE=$TARDIR/import.error.`date +%Y%m%d`.log
BAKLOGFILE=$TARDIR/bak.`date +%Y%m%d`.logSTATEIMPORT() {for i in $STATE
do
/usr/bin/docker load -i $i >/dev/null 2>>$LOGFILE
done
}RECEIVEIMPORT() {for i in $RECEIVE
do
/usr/bin/docker load -i $i >/dev/null 2>>$LOGFILE
done
}LISTIMPORT() {for i in $LIST
do
/usr/bin/docker load -i $i >/dev/null 2>>$LOGFILE
done
}IMAGESBAK(){IMGINFO=`docker images |awk '{print $1,$2,$3}'|sed 1d >> $TARDIR/tmp.txt`
RESLIST=`/usr/bin/cat $TARDIR/tmp.txt |awk '{print $1}' `
for i in $RESLIST
doRESTAG=`docker images |grep "$i" |awk '{a=$1":"$2;print a }'`BAKNAME=`docker images |grep "$i" |awk '{a=$1":"$2;print a }'|sed 's/\//_/g'`/usr/bin/docker save $RESTAG -o $TARDIR/$BAKNAME_`date +%Y%m%d`.tar >/dev/null 2>>$BAKLOGFILE
done
if [ -s $BAKLOGFILE ]
thenecho -e "\033[31mERROR:Images Backup Failed!\033[0m"echo -e "\033[31mPlease View The Log Lile : $BAKLOGFILE\033[0m"
else/usr/bin/rm -f $BAKLOGFILE
fi
/usr/bin/rm -f $TARDIR/tmp.txt
}/usr/bin/rm -f $TARDIR/*.log
read -p "Whether to backup the current images[y/n]:" INPUT
if [[ $INPUT = "y" ]] || [[ $INPUT = "Y" ]]
thenIMAGESBAK
elseif [[ -n "$RECEIVE" ]] || [[ -n "$STATE" ]]thenif [ -n "$RECEIVE" ]thenRECEIVEIMPORTelseSTATEIMPORTfielseLISTIMPORTfi
fi##ERROR Output
if [ -s $LOGFILE ]
thenecho -e "\033[31mERROR:Images Import Failed!\033[0m"echo -e "\033[31mPlease View The Log Lile : $LOGFILE\033[0m"
else/usr/bin/rm -f $LOGFILE
fi
Docker 镜像批量导入导出脚本相关推荐
- Docker镜像的导入导出
2019独角兽企业重金招聘Python工程师标准>>> 本文介绍Docker镜像的导入导出,用于迁移.备份.升级等场景,准备环境如下: CentOS 7.0 Docker 1.18 ...
- docker镜像批量导入、导出
实验基础环境: 操作系统: Centos7.6 docker版本: docker 19.03.12 内核版本: 3.10.0-1127.19.1 方法一: a. docker save $(docke ...
- docker 镜像容器导入导出、查看日志、拷贝文件命令
1. 本地文件拷贝到docker 容器中,参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7 ...
- Linux通用脚本---docker批量导入导出镜像
在实际的运维工作中,总是免不了一些批量操作的事情,比如,批量添加用户,批量修改用户密码,批量创建文件夹,批量移动复制文件等等操作.如果都是手工操作的话,无疑是一个劳心费力的事情,因此,我们才需要编写脚 ...
- win10批量导入导出windows计划任务的批处理脚本
批量导入导出windows计划任务的批处理脚本 2017年11月16日 16:19:31 yyusea 阅读数:2705 先把参考摆上: 参考1: How to: Use schtasks_tool ...
- docker images 保存导入导出、容器导入导出
Docker:镜像操作和容器操作 镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello- ...
- android手机导出联系人,OPPO Reno如何批量导入/导出联系人?
准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...
- docker镜像批量打包
docker镜像批量打包 docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=&qu ...
- shp2sde命令行方式向arcsde批量导入数据脚本的生成步骤
shp2sde命令行方式向arcsde批量导入数据脚本的生成步骤 作者:半块点心 出处:GIS动力站原 1.在dos提示符下执行: FOR /F "eol=; tokens=1,2,3, ...
- 使用cardme读写VCard文件,实现批量导入导出电话簿
转载自 使用cardme读写VCard文件,实现批量导入导出电话簿 首先下载jar包cardme. http://sourceforge.net/projects/cardme/?source=nav ...
最新文章
- 碾压专业机构,27 岁华裔小伙推出美国最准新冠预测模型
- 【数据库】将Excel导入达梦数据库,并执行表合并
- excel如何快速实现数据区域的框选
- java 邮件 附件_java中javamail发送带附件的邮件实现方法
- c++ char*初始化_C开发实战-深入理解指针
- 提升服务器性能的建议
- wince系统安装软件_精密空调安装泄漏检测系统软件的作用
- 如何设计好分布式数据库,这个策略很重要
- python pywinauto 单击鼠标_Python释放你的双手去成就梦想之自动化控制鼠标键盘
- 苹果手机vnc进linux的服务器,linux服务器vnc远程连接,怎么使用linux服务器进行vnc远程连接?...
- Monkey测试:日志信息分析
- Windows XP / 2003 / Vista 原版光盘镜像(下载)及其主要特征
- 埃夫特机器人示教器linux屏幕多少钱,不限 埃夫特机器人电路板维修
- 星外系统更换短信接口
- 目录大全:RDMA、IB卡、IB驱动下载、ubuntu16.04安装 IB驱动、ib_read/write_bw 测试RDMA读写....
- 百度坐标拾取html,百度地图API获取地址拾取坐标代码
- oracle的多个exclude,记录一下expdp exclude的用法
- Python中回文数和质数问题的解决
- 计算机ip地址和用户名和密码是什么,登陆无线路由器的IP地址是多少?怎么查看登录地址...
- DataX Transformer 源码分析及 UDF 扩展与使用
热门文章
- C# WinForm 中嵌入另一个.EXE程序(给程序加锁)
- 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
- Android WebView下载使用教程
- 毕业论文word版 格式设置技巧
- json格式校验(json格式校验器)
- 开发转测试,需要哪些必备测试技能?
- 1022-郑煤三板、锰硅、硅铁、纯碱跌停
- mysql join 从库_Mysql实现跨库join查询
- C++加速代码(DAY 39)
- w10如何共享计算机硬盘,w10共享盘怎么设置_win10如何共享硬盘