Docker镜像批量导入

作用

主要目的用于批量镜像导入;

1.支持传参数导入

实例:

  sh import.sh "pause_3.1.tar etcd_3.3.10.tar"
  注意:多个tar文件使用空格分隔;

2.支持脚本定义导入镜像名称

实例:

  vi import.sh
  STATE="ImgName1 ImgName2 ImgName3 ...."
  sh import.s

3.支持指定目录导入镜像

实例:

  vi import.sh
  TARDIR="/usr/local/bak"
  sh import.sh

4.支持镜像导入前备份当前镜像

  sh import.sh
  Whether to backup the current images[y/n]:[y/Y]

注意:

需要备份时输入字母Y,不区分大小写,不需要备份没有严格的指定,只要不是字母Y都可以作为否定备份;
如果同时在脚本中指定导入镜像,又在指定脚本时指定导入镜像名称,默认使用以脚本定义导入镜像名称;

脚本内容:

#!/bin/sh

STATE=""
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`.log

STATEIMPORT() {
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
do
    RESTAG=`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 ]
then
    echo -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" ]]
then
    IMAGESBAK
else
    if [[ -n "$RECEIVE" ]] || [[ -n "$STATE" ]]
    then
        if [ -n "$RECEIVE" ]
        then
                RECEIVEIMPORT
        else
                STATEIMPORT
        fi
    else
        LISTIMPORT
    fi
fi

##ERROR Output
if [ -s $LOGFILE ]
then
    echo -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镜像备份(导出)

原文地址:https://blog.51cto.com/scorpions/2415715

时间: 2024-10-09 18:50:05

Docker镜像批量导入的相关文章

docker镜像批量打包

docker镜像批量打包 批量打包镜像: # docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o k8s-master.tar 将机器上的所有镜像打包到haha.tar文件里面. 导入镜像: # docker load -i k8s-master.tar 然后docker images就可以看到拷贝过来的镜像了. 原文地址:h

Docker镜像的导入导出

导入/导出命令介绍 导入/导出的功能主要用于Docker镜像的导入导出,用于迁移.备份.升级等场景,或者为隔离且没有私有镜像仓库环境添加docker镜像. 导入/导出的命令主要有下面几个:export.import.save.load,可以分为2组: save和load export和import 下面分别看看他们的用法和区别 save和load 命令用法 [email protected] -> ~/manifests$ docker save --help Usage: docker sav

Docker 镜像的导入和导出

镜像的导入和导出 export 和improt [[email protected]#localhost docker]# docker run -ti ubuntu:update /bin/bash [email protected]d:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp update.txt usr var [[email protected]#localhost

Docker 镜像-管理-导入-导出

目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的,容器是在镜像上面添加了一个读写层.镜像一般储存在 /var/lib/docker/image/. 多个容器是引用的同一个 镜像,容器不会更改镜像的内容,而是创建一个可写层,并将数据保存在 /var/lib/docker/containers 中. Docker 镜像加速 当我们在使用 Docker

docker镜像文件导入与导出

工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/calico/node v1.0.1 c70511a49fa1 6 weeks ago 257 MB hello-world latest 48b5124b2768 2 months ago 1.84 kB quay.

docker镜像容器导入导出

记录一下,省的以后自己老忘. ubuntu-14.04-x86_64.tar.gz是下载的模板文件,导入模板文件示例如下 [email protected]:~# ll ubuntu-14.04-x86_64.tar.gz  -rw-r--r-- 1 root root 154056446 May 17 10:04 ubuntu-14.04-x86_64.tar.gz [email protected]:~# cat ubuntu-14.04-x86_64.tar.gz | docker imp

Docker 镜像批量备份(导出)

脚本作用 1.批量导出Docker Images;2.部分导出,通过指定Docker Images ID 到脚本"LIST"变量 运行实例 #导出全部的镜像: sh ExportImg.sh #导出部分镜像 LIST=" d235b 201c7a 201c7a" sh ExportImg.sh 注意:LIST赋值Docker Images ID ,多个镜像ID通过空格隔离:执行脚本是只会导出定义ID的镜像: 镜像还原(任选一种) docke load --input

docker 镜像的保存以及导入

docker 镜像的保存 docker save -o  davename.tar  images docker 镜像的导入 docker  import -  importname < tarfilename 价值: 方便进行镜像的使用,比如离线或者应用部署的时候.

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

Docker:镜像操作和容器操作 镜像操作 列出镜像: $ sudo docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE hello-world         latest              0a6ba66e537a        4 weeks ago         960 B 获取镜像: docker系统镜像可以从任意一