编辑
2023-02-14
🚀运维部署
00
请注意,本文编写于 856 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

起始
docker save 和load
应用场景
docker export 和import
应用场景

起始

相同点:

  • docker load 来导入镜像存储文件,到本地镜像库
  • docker import 来导入一个容器快照到本地镜像库

两者的区别在于:

  • 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态)
  • 镜像存储文件将保存完整记录,体积也要大。
  • 外,从容器快照文件导入时可以重新指定标签等元数据信息。

docker save 和load

docker save是用来将1个或多个image打包保存的工具。例如:

docker save -o images.tar postgres:9.6 mongo:3.4

将打包后的镜像载入进来使用docker load,例如:

docker load -i images.tar

应用场景

如果你的应用是使用docker-compose.yml编排的多个镜像组合,但你要部署的客户服务器并不能连外网。

这时,你可以使用docker save将用到的镜像打个包,然后拷贝到客户服务器上使用docker load载入。

docker export 和import

docker export是用来将container的文件系统进行打包的。例如:

docker export -o postgres-export.tar postgres

docker export需要指定container,不能像docker save那样指定image或container都可以。 将打包的container载入进来使用docker import,例如:

docker import postgres-export.tar postgres:latest

从上面的命令可以看出,docker import将container导入后会成为一个image,而不是恢复为一个container。

另外一点是,docker import可以指定IMAGE[

],说明我们可以为镜像指定新名称。

如果本地镜像库中已经存在同名的镜像,则原有镜像的名称将会被剥夺,赋给新的镜像。原有镜像将成为孤魂野鬼,只能通过IMAGE ID进行操作。

应用场景

制作基础镜像,

比如你从一个ubuntu镜像启动一个容器,然后安装一些软件和进行一些设置后,使用docker export保存为一个基础镜像。

然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!