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.io/coreos/flannel v0.7.0 63cee19df39c 2 months ago 73.8 MB
quay.io/calico/cni v1.5.5 ada87b3276f3 2 months ago 67.1 MB

2. 选择要打包的镜像,执行打包命令

sudo docker save -o quay.io-calico-node-1.tar quay.io/calico/node 

docker save REPOSITORY:TAG | gzip > REPOSITORY:TAG.tar.gz

会在当前目录下生成导出文件xxx.tar,然后将此文件下载到本地

3. 在开发环境导入上述打包的镜像

docker load -i quay.io-calico-node-1.tar
0a43edc59c00: Loading layer 27.59 MB/27.59 MB
69a5574b2581: Loading layer 3.636 MB/3.636 MB
fb0933709f36: Loading layer 3.913 MB/3.913 MB
7384abd120f5: Loading layer 3.859 MB/3.859 MB
e34911610de0: Loading layer 27.06 MB/27.06 MB
d6ec327c8cbe: Loading layer 6.656 kB/6.656 kB
Loaded image ID: sha256:ada87b3276f307a6b1b1ada15820b6c9842fd839fe5cc46ad5db8af81f7fd271

至此,可以使用本地镜像了!

4. 批量导入导出镜像工具

①导出镜像:

import re
import os
import subprocess if __name__ == "__main__":
os.system('rm -rf /tmp/xfleet')
os.system('mkdir -p /tmp/xfleet')
p = subprocess.Popen('docker images', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines(): # 此处的正则表达式是为了匹配镜像名以ufleet为开头的镜像
# 实际使用中根据需要自行调整
m = re.match(r'(^ufleet[^\s]*\s*)\s([^\s]*\s)', line.decode("utf-8"))
if not m:
continue # 镜像名
iname = m.group(1).strip(' ')
# tag
itag = m.group(2) # tar包的名字
tarname = iname.split('/')[-1]
print(tarname)
tarball = tarname + '.tar'
ifull = iname + ':' + itag
#save
cmd = 'docker save -o ' + tarball + ' ' + ifull
os.system(cmd) # 将tar包放在临时目录
os.system('mv %s /tmp/xfleet/'%tarball) retval = p.wait()

  ②导入镜像:

import os
import sys if __name__ == "__main__":
tarball = sys.argv[1]
print(tarball) workdir = '/tmp/xfleet-images'
os.system('rm -rf %s'%workdir)
os.system('mkdir -p %s'%workdir)
os.system('tar -zxvf %s -C %s'%(tarball, workdir)) os.chdir(workdir)
files = os.listdir(workdir)
for filename in files:
print(filename)
os.system('docker load -i %s'%filename)

  

容器打包成镜像:

docker commit -a "xxx" -m "xxx" 容器名称或id 打包的镜像名称:标签 

OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。

小工具参考资料:http://www.cnblogs.com/ksir16/p/8865525.html

docker镜像文件导入与导出 , 支持批量的更多相关文章

  1. docker镜像文件导入与导出,支持批量

    工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPO ...

  2. docker镜像文件导入与导出

    工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPO ...

  3. docker镜像的导入和导出

    启动命令 docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3 docker run -d -p 8080:80 gitlab/gitlab-ce ...

  4. Docker 镜像的导入和导出

    镜像的导入和导出 export 和improt [root@#localhost docker]# docker run -ti ubuntu:update /bin/bash root@cbe3cb ...

  5. kubernetes集群搭建(9):docker 镜像的导入与导出

    由于K8s搭建时官方提供的镜像不FQ是访问不了的,所以搭建过程中很多时间都耗费在去找镜像去了 下面是我搭建k8s集群用到的镜像  没有采用之前我用的二进制文件搭建(dns没成功),这里采用的Kubea ...

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

    目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的 ...

  7. 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件

    从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...

  8. 如何将docker镜像文件上传至Docker Hub

    一.Docker Hub中新建存储库 注册,登录Docker Hub之后,点击右上角Create Repository,创建存储库,如下图所示: 取个名字,我这里取名为lihui_demo.并且可以选 ...

  9. Docker 镜像文件的导入和导出

    使用save命令 保存镜像 docker save -o name_by_you.tar exist_images 将文件copy到另一台机器 使用load命令将镜像文件保存到本地仓库 docker ...

随机推荐

  1. stm32 独立看门狗学习

    STM32F10xxx内置两个看门狗,提供了更高的安全性.时间的精确性和使用的灵活性.两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障. 独立看门狗(IWDG)由专用的低速 ...

  2. spring boot 配置redis

    先配置属性: # database name spring.redis.database=0 # server host spring.redis.host=127.0.0.1 # server pa ...

  3. SWIG 和 Python——c/c++与脚本交互

    C 和 C++ 被公认为(理当如此)创建高性能代码的首选平台.对开发人员的一个常见要求是向脚本语言接口公开 C/C++ 代码,这正是 Simplified Wrapper and Interface ...

  4. oracle expdp impdp 数据泵方式

    一.不管导入还有导出都要先创建目录 1.登录plsql sqlplus/nolog conn sys/dbwork@orcl 2.创建目录 create directory my_dir as 'd: ...

  5. Java学习第十六天

    1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...

  6. FormCollection的用法

    FormCollection的用法: 有时候前台抛来的字段太多,在后台一个一个例举出来显得麻烦,而且还容易出错,FormCollection解决了这个烦恼 #region 给商家留言 [HttpPos ...

  7. 浅谈MVC基础

    ASP.NET   MVC :UI层框架 让我们的web开发又回到了本质:请求,处理,响应 MVC本身是一种思想,将程序分成三个模块 Model:模型  广义的说法(包含DAL  BLL  MODEL ...

  8. easyui combobox with checkbox item

    $('#cc').combobox({ url:'combobox_data1.json', method:'get', valueField:'id', textField:'text', pane ...

  9. 【技巧】如何使用UltraEdit删掉某些行并且不留空行

    例: 在S1这个文件中我想要把所有B6 96 FD 2E 49 96 2 D2的行删掉. 首先,查找这些序列,执行替换命令,替换为的内容不写. 点击“全部替换”之后,发现在原来的位置多了一行空行. 接 ...

  10. Azure CDN:氮气加速已开启,司机们请做好准备

    在上一周,我们向各位小伙伴介绍了通过 Azure CDN 高级版服务为 HTTPS 应用加速的做法,漏掉的小伙伴可以点击这里穿越回去补课哦.那我们今天讲点什么呢?当然是 CDN 最重要的价值:改善应用 ...