介绍
如果没有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