daocke镜像批量导出脚本

摘要:
-d$BAKDIR]和&mkdir-p$BAKDIR[!

脚本作用

1.批量导出Docker Images;
2.部分导出,通过指定Docker Images ID 到脚本“LIST”变量;
3.支持相同ID,不同REPOSITORY名称备份;

例如:

daocke镜像批量导出脚本第1张daocke镜像批量导出脚本第2张
docker images 
kry1702/coredns                      1.3.1               eb516548c180        5 months ago        40.3MB
k8s.gcr.io/coredns                   1.3.1               eb516548c180        5 months ago        40.3MB
注意:备份文件名称格式为:kry1702_coredns:1.3.1.tar
主要是解决相同ID,不同REPOSITORY名称,如果提取“/”最右边为备份文件名称格式导致备份文件冲突,以上为例备份文件名称格式为:coredns:1.3.1.tar 
View Code

运行实例

daocke镜像批量导出脚本第3张daocke镜像批量导出脚本第4张
#导出全部的镜像;
 sh ExportImg.sh
 
 #导出部分镜像
 LIST=“ d235b 201c7a  201c7a”
 sh ExportImg.sh
注意:LIST赋值Docker Images ID ,多个镜像ID通过空格隔离;执行脚本是只会导出定义ID的镜像;
View Code

镜像还原(任选一种)

daocke镜像批量导出脚本第5张daocke镜像批量导出脚本第6张
docker load --input xxx.tar
docker load < xx.tar
docker load -i xx.tar
View Code

脚本内容

daocke镜像批量导出脚本第7张daocke镜像批量导出脚本第8张
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 $LOGDIR
 
if [ -n "$LIST" ]
then
        for list in $LIST
        do
                RESLIST=`docker images |grep $list | awk '{print $1}'`
                for reslist in $RESLIST
                do
                RESTAG=`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>&1
                done
        done
else
        REC=`docker images |awk '{print $1,$2,$3}'|sed 1d >> $TXT`
        RESLIST=`cat $TXT|awk '{print $1}'`
        for reslist in $RESLIST
        do
                RESTAG=`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>&1
        done
        /usr/bin/rm -f $TXT
fi
 
if [ -s $LOGFILE ]
then
        echo -e "

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win10 远程服务器版swagger和openAPI: 上传文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker中使用Nginx反向代理配置说明

本文主要讲述在Docker中怎么配置Nginx 一、Docker中安装Nginx请参考:https://www.cnblogs.com/whereGo/p/13523597.html。 二、配置Nginx: 1、进入Nginx容器  docker exec -it nginx bash #进入nginx容器  2、容器里面需要安装Vim apt-...

Qt使用镜像源快速安装与更新

一、前言 虽然Qt官方提供了两种安装方式一种是在线安装,另一种是离线安装。离线安装是分版本打包好了的,但如果我要安装PC端的又要安装Android的,那么就要安装两个版本,显得特别臃肿。若是我们选择在线安装的模式,更是麻烦,因为下载速度不是一般的慢。其实在中国,有很多的Qt镜像源,但是基本没多少人用,原因是Qt的镜像源做的并不好,如果我们导入的话会自动链接...

【Java】Java8中List排序

将List集合按某种属性排序 //按名字升序 --Lamdba表达式 Collections.sort(listStudents, (a,b) -> a.getName().compareTo(b.getName())); //降序的话调换一下位置就行了 Collections.sort(listStudents, (a,b) -> b.ge...

Java List与树的互转

  平时工作中都会遇到包含层级关系的List数据转换成树形结构,或者数据已是树形结构了,需要我们处理成普通的单层list结构。以下代码均为本人实际开发所写代码,可能不是最优解、复杂度也比较高,在此和大家一起分享学习!   注:该工具类支持将list转换成树/森林。可自行测试,有疑问或更优方案,可私聊我。     TreeNode@Data @JsonInc...

Kubernetes 使用 Kubevirt 运行管理 Windows 10 操作系统

原文链接:https://fuckcloudnative.io/posts/use-kubevirt-to-manage-windows-on-kubernetes/ 最近我发现我的 Kubernetes 集群资源实在是太多了,有点浪费,不信你看: 既然闲置资源那么多,那我何不想办法利用一下。怎么用,用来干什么又是一个问题,想到我手中只有 MacBook...

Docker下安装Sqlserver(mssql)

1.服务器需要大于2G内存。如果不够则可能无法正常启动,查看日志报如下错误:This program requires a machine with at least 2000 megabytes of memory 2.获取sqlserver镜像 docker pull mcr.microsoft.com/mssql/server:2017-lates...