docker save load export import的区别

时间:2022-07-23
本文章向大家介绍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分别是导入、导出镜像image, import、export分别是导入、导出容器container。

两者的使用方法是一样的,导入压缩包生成镜像 docker import - busybox-1-export:latest docker import可以重新指定镜像的名字 docker load < /home/save.tar

区别

那,它们之间到底存在什么不同呢?

  1. 首先,docker import可以重新指定镜像的名字,docker load不可以
  2. 其次,我们发现导出后的版本会比原来的版本稍微小一些。那是因为导出后,会丢失历史和元数据。执行下面的命令就知道了: 显示镜像的所有层(layer) sudo docker images --tree 执行命令,显示下面的内容。正你看到的,导出后再导入(exported-imported)的镜像会丢失所有的历史,而保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚(可以执行docker tag 来回滚之前的层)。