docker save load export import的区别


export

export命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器ID: 

sudo docker ps -a 

接着执行导出: 


sudo docker export <CONTAINER ID> > /home/export.tar


save

Save命令用于持久化镜像(不是容器)。所以,我们就需要通过以下方法得到镜像名称: 


sudo docker images 


接着执行保存: 


sudo docker save busybox-1 > /home/save.tar


使用export比使用save保存的文件要小一些

load save

两者的使用方法是一样的,导入压缩包生成镜像 

 import可以重新指定镜像的名字 


docker import - busybox-1-export:latest 




docker load < /home/save.tar



区别

首先,docker import可以重新指定镜像的名字,docker load不可以

其次,我们发现导出(export)后的版本会比原来的版本稍微小一些。那是因为导出后,会丢失历史和元数据。执行下面的命令就知道了: 

显示镜像的所有层(layer) 

sudo docker images --tree 

执行命令,显示下面的内容。正你看到的,导出后再导入(exported-imported)的镜像会丢失所有的历史,而保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚(可以执行docker tag 来回滚之前的层)。


vagrant@Ubuntu-13:~$ sudo docker images --tree

├─f502877df6a1 Virtual Size: 2.489 MB Tags: busybox-1-export:latest

└─511136ea3c5a Virtual Size: 0 B

  └─bf747efa0e2f Virtual Size: 0 B

    └─48e5f45168b9 Virtual Size: 2.489 MB

      └─769b9341d937 Virtual Size: 2.489 MB

        └─227516d93162 Virtual Size: 2.489 MB Tags: busybox-1:latest


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • export export命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器ID:sudo do...
    五大RobertWu伍洋阅读 4,538评论 0 0
  • Docker是基于镜像的。镜像类似于已经包含了文件、配置和安装好的程序的虚拟机镜像。同样的,你可以像启动虚拟机一样...
    wangliang938阅读 3,021评论 0 0
  • Docker基础 这篇基础文章是方便用户在使用cSphere平台之前,了解docker基础知识。针对已经有一定的L...
    威谷子阅读 4,569评论 0 11
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 9,836评论 0 27
  • linux 查看系统版本确认使用的docker版本 uname -a --查看Linux内核版本命令cat /pr...
    只有香如故阅读 5,083评论 1 4