如果服务器网络不好或者pull不下来镜像,只能在其它网络比较好的机器上pull下来镜像,导出成一个文件,再下载上传到网络不好的机器上,然后再从文件中导出来,这样在网络不好的机器上也能使用docker镜像了。
首先使用 docker images 查看本机镜像,找到他的镜像id,导入/导出方式有两种方式,两种方式不可以混用,否则虽然导入不提示错误,但是启动容器时会提示失败,存在导入的镜像环境变量丢失等问题,如图所示:
1、方法一(推荐)
我们可以使用 save 和 load 命令,通过镜像id导出镜像到宿主机,命令如下:
docker save <span class="token operator">-</span>o coredns<span class="token punctuation">.</span>tar k8s<span class="token punctuation">.</span>gcr<span class="token punctuation">.</span>io/coredns:1<span class="token punctuation">.</span>3<span class="token punctuation">.</span>1docker save <span class="token operator">-</span>o coredns<span class="token punctuation">.</span>tar k8s<span class="token punctuation">.</span>gcr<span class="token punctuation">.</span>io/coredns:1<span class="token punctuation">.</span>3<span class="token punctuation">.</span>1docker save -o coredns.tar k8s.gcr.io/coredns:1.3.1
然后将导出的镜像文件上传到网络不好的主机上,执行以下命令进行镜像导入,命令如下:
$ docker load < coredns<span class="token punctuation">.</span>tar$ docker load < coredns<span class="token punctuation">.</span>tar$ docker load < coredns.tar
2、方法二
我们还可以使用 export 和 import 命令,进行导入/导出操作,导出命令如下:
$ docker export eb516548c180 > coredns<span class="token punctuation">.</span>tar$ docker export eb516548c180 > coredns<span class="token punctuation">.</span>tar$ docker export eb516548c180 > coredns.tar
复制
我们将上述 coredns.tar.gz 镜像在另一个网络不好的节点进行导入,命令如下(二者选其一即可):
$ docker import <span class="token operator">/</span>usr/local/coredns<span class="token punctuation">.</span>tar $ <span class="token function">cat</span> coredns<span class="token punctuation">.</span>tar <span class="token punctuation">|</span> docker import <span class="token operator">-</span> k8s<span class="token punctuation">.</span>gcr<span class="token punctuation">.</span>io/coredns:1<span class="token punctuation">.</span>3<span class="token punctuation">.</span>1<span class="token punctuation">(</span>镜像名自己定义<span class="token punctuation">)</span>$ docker import <span class="token operator">/</span>usr/local/coredns<span class="token punctuation">.</span>tar $ <span class="token function">cat</span> coredns<span class="token punctuation">.</span>tar <span class="token punctuation">|</span> docker import <span class="token operator">-</span> k8s<span class="token punctuation">.</span>gcr<span class="token punctuation">.</span>io/coredns:1<span class="token punctuation">.</span>3<span class="token punctuation">.</span>1<span class="token punctuation">(</span>镜像名自己定义<span class="token punctuation">)</span>$ docker import /usr/local/coredns.tar $ cat coredns.tar | docker import - k8s.gcr.io/coredns:1.3.1(镜像名自己定义)
然后执行以下命令查看是否导入成功,命令如下:
$ docker images$ docker images$ docker images
导入成功之后的节点镜像列表,如图所示:
到此 Docker 导出/导入镜像介绍完成。
原文链接:https://blog.csdn.net/weixin_42857718/article/details/131192738?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836840916800222838180%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836840916800222838180&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-8-131192738-null-null.nonecase&utm_term=docker%E3%80%81%E5%A5%BD%E7%94%A8