在 docker 之间导出导入镜像的方法

很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像。

没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了。

废话少说,经过探究,发现 docker 提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。

1. 导出 export - 导入 import

格式:docker export CONTAINER(容器)

使用 docker ps -a 查看本机已有的容器,如:

我们使用容器 furious_bell,现在要将这个容器保存为一个文件 myunbuntu-export-1204.tar

docker export furious_bell > /home/myubuntu-export-1204.tar 

导出完成后,就可以使用 import 导入了

docker import - /home/myubuntu-export-1204.tar 

2.保存save - 加载 load

格式:docker save IMAGE(镜像)

使用 docker images 查看本机已有的镜像(也可以使用 docker commit <CONTAIN-ID> <IMAGE-NAME>命令把一个正在运行的容器保存为镜像),如:

这里有个基础镜像:ubuntu:12.04,现在要将这个镜像保存为一个文件myubuntu-save-1204.tar

docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar 

有点慢,稍微等待一下,没有任何warn信息就表示保存OK。9610cfc68e8d 是镜像ID

现在就可以在任何装 docker 的地方加载 刚保存的镜像了

docker load < /home/myubuntu-save-1204.tar

3.导出 export 与 保存 save 的区别

(1).export导出的镜像文件大小  小于 save保存的镜像

(2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)

注:导入加载进来觉得不合适可以使用 docker rm 容器ID 、 docker rmi 镜像ID 来删掉。

移除所有的容器和镜像(大扫除):

代码如下:

docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)

参考:

http://www.tuicool.com/articles/emYVRzv

http://my.oschina.net/zjzhai/blog/225112

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • docker实现导出、导入和数据搬迁

    docker 导出 导入有二种,一种是备份镜像,一种备份容器.数据搬迁,最简单粗暴就是直接COPY,volume的路径就行了. 一,导出导入镜像 #导出为tar docker save #ID or #Name > /home/save.tar #导入tar docker load < /home/save.tar 二,导出导入容器 #导出为tar docker export #ID or #Name > /home/export.tar #导入tar cat /home/export.

  • docker实践之容器的导入与导出

    前言 Docker的流行与它对容器的易分享和易移植密不可分.用户不仅可以把容器提交到公共服务器上,还可以将容器导出到本地文件系统中.同样,我们也可以将导出的容器重新导入到Docker环境中去. 如果要导出本地某个容器,可以使用 Docker export 命令,可以使用 docker import 从容器快照文件中再导入为镜像 1.首先查找正在运行的容器ID 2.然后使用 docker export 命令将容器导出(这里以GWAS_HF容器为例) 3.查看导出结果,scp命令传输到另一台服务器

  • 在 docker 之间导出导入镜像的方法

    很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像. 没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了. 废话少说,经过探究,发现 docker 提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了. 1. 导出 export - 导入 import 格式:docker export CONTAINER(容器) 使用 docker ps -a 查看本机已有的容器,如: 我们使

  • Docker中Dockerfile制作镜像的方法步骤

    目录 1.基于容器制作 2. 基于Dockerfile制作镜像 2.1 Dockerfile命令 2.2 简单示例 docker 镜像的制作,可以基于容器创建镜像,也可基于 dockerfile 构建镜像.但需要注意的是,我们并不是真正"创建"新镜像,而是基于一个已有的基础镜像,如 centos 或 ubuntu 等,构建新镜像而已. 1.基于容器制作 联合文件系统(UnionFS)挂载提供了容器的文件系统,任何对容器内文件系统的改动都会被写入到新的文件层中,这个文件层归创建它的容器所

  • 使用Docker将容器打成镜像的方法步骤

    目录 前言 1. 容器打成镜像 过程示例 2. 镜像打包 前言 工作中遇到三方闭源的中间件运行起来某项特性不符合需求,但是镜像提供方偏偏又没有将配置文件挂载出来以供修改,这就导致要使软件符合需求地运行只能进入到容器内部修改配置文件后重启,可谓非常之蛋疼.笔者平时对 Docker 接触不多,好在有同事提到 Docker 支持将运行中的容器重新打包为镜像,于是网上搜索资料,大致整理出以下步骤解决上面的问题,故有本文聊作记录 进入运行中的容器修改其配置文件,修改完成后重启容器 将已经修改过配置文件的容

  • docker 手动构建新镜像的方法

    本文介绍了docker 手动构建新镜像的方法,分享给大家,具体如下: 查看本地现有镜像: [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest c59f17fe53b0 4 days ago 108MB ubuntu latest 747cb2d60bbe 3 weeks ago 122MB centos latest 196e0ce0c9fb 6 weeks ago 197MB 现在利用

  • 使用Docker构建企业级自定义镜像的方法

    前言 临下班前,楼主接到了一个需求,由于基础镜像标准发生变更,需要按照最新的Docker 镜像标准构建自己应用的自定义镜像.目前的标准是这样的:基础架构组只提供所有项目必须接入的3个公共镜像,这3个公共基础镜像包含了:JDK8.Skywalking.Arthas.对于各自业务组的应用如果还需要加入其它镜像,则由各个业务组自己基于基础架构组提供的公共镜像之上,再添加自定义的镜像,结构图如下: 构建步骤 编写Dockerfile 基于最新的规范来看,我们需要编写一个Dockerfile,然后引用基础

  • Docker 删除及清理镜像的方法

    目录 一.通过标签删除镜像 二.通过ID删除镜像 三.删除镜像的限制 四.清理镜像 一.通过标签删除镜像 通过如下两个都可以删除镜像: docker rmi [image] 或者: docker image rm [image] 支持的子命令如下: -f, -force: 强制删除镜像,即便有容器引用该镜像: -no-prune: 不要删除未带标签的父镜像: 例如,我们想删除上章节创建的 allen_mysql:5.7 镜像,命令如下: docker rmi allen_mysql:5.7 从上

  • Docker镜像保存为文件及从文件导入镜像的方法

    1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍. 如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择. 可以使用Docker save和Docker load命令来存储和载入镜像. 2.保存

  • docker之创建MariaDB镜像的方法

    一.基于commit命令方式创建 docker的安装 [root@test01 ~]# yum install docker [root@test01 ~]# systemctl enable docker [root@test01 ~]# systemctl start docker 下载本地镜像 [root@test01 ~]# docker pull centos:7.4.1708 [root@test01 ~]# docker images REPOSITORY TAG IMAGE ID

  • docker使用Dockerfile构建镜像的方法

    构建镜像 前面我们使用各种镜像进行测试演示,很多情况下我们是需要自己的镜像,满足自己业务需要的镜像,这就需要我们能够定制自己需要的镜像,构建 Docker 镜像有以下两种方法. 使用 docker commit 命令. 使用 docker build 命令和 Dockerfile 构建文件. 现在我们不推荐使用 docker commit 命令,而应该使用更灵活.更强大的 Dockerfile 来构建 Docker 镜像. 1.使用 commit 命令构建 docker commit 命令是创建

随机推荐