1、使用背景

我们制作好镜像后,有时需要将镜像复制到另一台服务器使用。

能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库。

如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择。

可以使用Docker save和Docker load命令来存储和载入镜像。

2、保存镜像为文件

如果要讲镜像保存为本地文件,可以使用Docker save命令。

命令格式:

# 用法
docker save -o 要保存的文件名 要保存的镜像

# 例如:
docker save -o halo.tar registry.zjc123.cn/halo:latest

首先查看当前的镜像列表:

docker images

![image-20210722115011961](/Users/zhengshangjin/Library/Mobile Documents/iCloud~app~cyan~taio/Documents/Editor/PersonalNotes/技术文章/Docker/image-20210722115011961.png)

比如这里,我们将halo的镜像保存为文件:

docker save -o halo.tar halohub/halo

完成后在当前目录通过 ls 命令即可看到文件。

3、从文件载入镜像

从文件载入镜像可以使用Docker load命令。

命令格式:

docker load --input 文件

或者

docker load < 文件名

此时会导入镜像以及相关的元数据信息等。

首先使用SSH工具将文件上传到另一台服务器。

然后通过命令载入镜像:

docker load < halo.tar

导入后可以使用docker images命令查看是否成功,已经存在。

Q.E.D.