导入和导出
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
Docker 导出和导入镜像的方式有两种,一种是通过容器,一种是通过镜像。
-o, --output
写入文件,而不是 STDOUT
仅保存给定的平台变体。格式为os[/arch[/variant]]
(例如linux/amd64
)
例如:
从 tar 存档文件读取,而不是从 STDIN 读取
API 1.48+ 仅加载给定的平台变体。格式为os[/arch[/variant]]
(例如linux/amd64
)
-q, --quiet
抑制负载输出
两种方法不能混用,通过 docker export
导出的镜像只能通过 docker import
导入。通过 docker save
导出的镜像只能通过docker load
导入。
文件大小不同
docker export
导出的镜像文件体积小于save保存的文件体积
是否可以对镜像重命名
docker import
可以为在载入镜像的时候为镜像指定新名称。
docker save
不能在载入镜像的时候为镜像指定新名称。
是否可以同时将多个镜像打包到一个文件中
docker export
不支持将多个镜像打包到一个文件中。
docker save
支持将多个镜像打包到一个文件中。
是否包含历史镜像
docker export
是根据容器拿到的镜像,再导入时会丢失镜像的所有历史记录和元数据信息,仅保存容器当前的快照状态,所以无法进行回滚操作。
docker sava
保存的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。
应用场景不同
docker export
的应用场景是主要用来制作基础镜像,例如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用docker export
保存为一个基础镜像,然后把这个镜像给其它人使用,比如作为基础的开发环境。
docker save
的应用场景是克隆原始镜像,例如服务器不能连外网或者因网络问题下载不了镜像,我们就可以使用docker save
将需要用到的镜像打包,然后拷贝到服务器上通过docker load载入。