由于我的内网服务器不可连接外网,所以需要在能连接外网的机器上将镜像导出来再上传到内网服务器中,以供内网服务器使用。
所以就用到了docker save命令,我根据网上查到的命令,将镜像导出到本地:
docker save [镜像id] > image.tar
然后上传到内网服务器中,使用docker load命令加载镜像:
docker load < image.tar
结果出现如下报错:
Error response from daemon: Untar exit status 1 archive/tar: invalid tar header
查询了半天在stackoverflow中发现了原因:不同的操作系统中运行这些命令会产生错误。而我运行docker save命令时,用的是Windows PowerShell,内网服务器是Linux,所以导致这个报错。
解决方案:
用如下两个命令就行了
- docker save [镜像id] -o image.tar
-
- docker load -i image.tar
运行docker load后,加载的镜像是没有名称和标签的,如下图
可以使用 docker tag [镜像id] [name]:[tag] 命令给它们重命名: