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

 更新时间:2017年07月19日 10:36:31   作者:a906998248  
本篇文章主要介绍了在 docker 之间导出导入镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

<QQ图片20150529102110.png>

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

废话少说,经过探究,发现 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

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

相关文章

  • Docker如何导出某时间段日志

    Docker如何导出某时间段日志

    这篇文章主要介绍了Docker如何导出某时间段日志问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 一文讲解如何查看一个docker镜像有哪些版本

    一文讲解如何查看一个docker镜像有哪些版本

    这篇文章主要给大家介绍了关于如何查看一个docker镜像有哪些版本的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用docker具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-04-04
  • 如何解决Docker启动问题docker is starting…

    如何解决Docker启动问题docker is starting…

    这篇文章主要给大家介绍了关于如何解决Docker启动问题docker is starting…的相关资料,文中通过图文将解决的过程介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • windows下Docker部署Flask的详细教程

    windows下Docker部署Flask的详细教程

    这篇文章主要介绍了windows下Docker部署Flask的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • docker基本使用方法入门示例

    docker基本使用方法入门示例

    这篇文章主要介绍了docker基本使用方法入门示例,包含docker命令查询方法,查询镜像和下拉镜像,本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • docker部署nginx下日志自动切割方法实现

    docker部署nginx下日志自动切割方法实现

    部署Nginx在Docker中时,其日志文件默认不会自动切割,与非Docker环境有所不同,本文介绍了三种日志切割方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • Docker获取镜像报错docker: Error response from daemon

    Docker获取镜像报错docker: Error response from daemon

    这篇文章主要介绍了Docker获取镜像报错docker: Error response from daemon, 出现了镜像获取报错的问题,找到了解决的方法记一下,需要的朋友可以参考下
    2018-08-08
  • docker 添加端口及获取dockerfile的方法

    docker 添加端口及获取dockerfile的方法

    这篇文章主要介绍了docker 添加端口及获取dockerfile的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 关于构建aarch64环境Mysql8.0的Docker镜像问题

    关于构建aarch64环境Mysql8.0的Docker镜像问题

    这篇文章主要介绍了构建aarch64环境Mysql8.0的Docker镜像,需要的朋友可以参考下
    2022-04-04
  • Linux下定时自动备份Docker中所有SqlServer数据库的脚本

    Linux下定时自动备份Docker中所有SqlServer数据库的脚本

    这篇文章主要介绍了Linux下定时自动备份Docker中所有SqlServer数据库 ,编写shell文件给出一个备份的范例,在Linux添加定时任务,通过下列命令来检测并安装这个服务,需要的朋友可以参考下
    2022-09-09

最新评论