docker导出镜像(save)、加载镜像(load)

介绍

如果没有docker私有仓库,将本地镜像放到其它服务器上执行时,可以使用docker save命令,把镜像保存成tar文件;用docker load命令,将tar文件恢复成镜像

如:从测试服务器上导出镜像,在生产服务器上加载镜像

特点

保存所有的历史记录和元数据信息,dockerfile 里的 workdir, entrypoint 之类的都会保存,体积也更大。

导出镜像

将测试服务器的镜像保存成tar

sudo docker save myblog -o /myblog.tar

注意: 这里最好是用 镜像名,不要使用 镜像ID,不然加载镜像后,执行 docker images 显示如下:

REPOSITORY       TAG         IMAGE ID      CREATED        SIZE
<none>           <none>      978b82dc00dc  11 months ago  236MB

显示REPOSITORY、TAG 可能显示none

查看

根目录是否有 myblog.tar 文件

ll /

结果如下:

-rw------- 1 root  root 694482944 Jan  2 02:11 myblog.tar

如果该文件的所属用户、用户组是root,可能会无法下载文件到本机

需要修改用户、用户组为当前登录用户

修改用户、用户组

sudo chown mym myblog.tar
sudo chgrp mym myblog.tar

加载镜像

将 myblog.tar 文件上传到 目标服务器上,执行下面命令加载:

sudo docker load -i myblog.tar

查看镜像

sudo docker images

显示应该是正确的

注意

执行 docker save 时,最好是用 镜像名,不要使用 镜像ID,不然加载镜像后,执行 docker images 显示如下:

REPOSITORY       TAG         IMAGE ID      CREATED        SIZE
<none>           <none>      978b82dc00dc  11 months ago  236MB

显示REPOSITORY、TAG 可能显示none


原文出处:/show_1IXKdPrPRMg.html