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文件

  1. 支持传参数导入
# 注意:多个tar文件使用空格分隔;
sh import.sh "nacos.tar redis.tar"
  1. 支持脚本定义导入镜像名称
 vi import.shSTATE="ImgName1 ImgName2 ImgName3 ...."sh import.sh
  1. 支持指定目录导入镜像
vi import.sh
TARDIR="/usr/local/bak"
sh import.sh
  1. 支持镜像导入前备份当前镜像
# 注意:需要备份时输入字母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 镜像批量导入导出脚本相关推荐

  1. Docker镜像的导入导出

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍Docker镜像的导入导出,用于迁移.备份.升级等场景,准备环境如下: CentOS 7.0 Docker 1.18 ...

  2. docker镜像批量导入、导出

    实验基础环境: 操作系统: Centos7.6 docker版本: docker 19.03.12 内核版本: 3.10.0-1127.19.1 方法一: a. docker save $(docke ...

  3. docker 镜像容器导入导出、查看日志、拷贝文件命令

    1. 本地文件拷贝到docker 容器中,参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7 ...

  4. Linux通用脚本---docker批量导入导出镜像

    在实际的运维工作中,总是免不了一些批量操作的事情,比如,批量添加用户,批量修改用户密码,批量创建文件夹,批量移动复制文件等等操作.如果都是手工操作的话,无疑是一个劳心费力的事情,因此,我们才需要编写脚 ...

  5. win10批量导入导出windows计划任务的批处理脚本

    批量导入导出windows计划任务的批处理脚本 2017年11月16日 16:19:31 yyusea 阅读数:2705 先把参考摆上: 参考1:  How to: Use schtasks_tool ...

  6. docker images 保存导入导出、容器导入导出

    Docker:镜像操作和容器操作 镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello- ...

  7. android手机导出联系人,OPPO Reno如何批量导入/导出联系人?

    准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...

  8. docker镜像批量打包

    docker镜像批量打包 docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=&qu ...

  9. shp2sde命令行方式向arcsde批量导入数据脚本的生成步骤

    shp2sde命令行方式向arcsde批量导入数据脚本的生成步骤  作者:半块点心  出处:GIS动力站原 1.在dos提示符下执行: FOR /F "eol=; tokens=1,2,3, ...

  10. 使用cardme读写VCard文件,实现批量导入导出电话簿

    转载自 使用cardme读写VCard文件,实现批量导入导出电话簿 首先下载jar包cardme. http://sourceforge.net/projects/cardme/?source=nav ...

最新文章

  1. 碾压专业机构,27 岁华裔小伙推出美国最准新冠预测模型
  2. 【数据库】将Excel导入达梦数据库,并执行表合并
  3. excel如何快速实现数据区域的框选
  4. java 邮件 附件_java中javamail发送带附件的邮件实现方法
  5. c++ char*初始化_C开发实战-深入理解指针
  6. 提升服务器性能的建议
  7. wince系统安装软件_精密空调安装泄漏检测系统软件的作用
  8. 如何设计好分布式数据库,这个策略很重要
  9. python pywinauto 单击鼠标_Python释放你的双手去成就梦想之自动化控制鼠标键盘
  10. 苹果手机vnc进linux的服务器,linux服务器vnc远程连接,怎么使用linux服务器进行vnc远程连接?...
  11. Monkey测试:日志信息分析
  12. Windows XP / 2003 / Vista 原版光盘镜像(下载)及其主要特征
  13. 埃夫特机器人示教器linux屏幕多少钱,不限 埃夫特机器人电路板维修
  14. 星外系统更换短信接口
  15. 目录大全:RDMA、IB卡、IB驱动下载、ubuntu16.04安装 IB驱动、ib_read/write_bw 测试RDMA读写....
  16. 百度坐标拾取html,百度地图API获取地址拾取坐标代码
  17. oracle的多个exclude,记录一下expdp exclude的用法
  18. Python中回文数和质数问题的解决
  19. 计算机ip地址和用户名和密码是什么,登陆无线路由器的IP地址是多少?怎么查看登录地址...
  20. DataX Transformer 源码分析及 UDF 扩展与使用

热门文章

  1. C# WinForm 中嵌入另一个.EXE程序(给程序加锁)
  2. 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
  3. Android WebView下载使用教程
  4. 毕业论文word版 格式设置技巧
  5. json格式校验(json格式校验器)
  6. 开发转测试,需要哪些必备测试技能?
  7. 1022-郑煤三板、锰硅、硅铁、纯碱跌停
  8. mysql join 从库_Mysql实现跨库join查询
  9. C++加速代码(DAY 39)
  10. w10如何共享计算机硬盘,w10共享盘怎么设置_win10如何共享硬盘