跳到主要内容

如何下载国外镜像

如何下载一个国外的镜像?

以下面的例子为例:

要做一个NodeLocal DNSCache的实验,其中要使用k8s.gcr.io/dns/k8s-dns-node-cache:1.21.1镜像拉取pod。

[root[@master1 ]() ~]#vim nodelocaldns.yaml

img

因为这个k8s.gcr.io镜像仓库地址是国外的,我们这里访问不了,此时该如何解决呢?

  • 我们这里尝试从本地配置的国内镜像源及dockerhub镜像源拉取进项看是否可以拉取成功?

先看下当前docker配置的进项源地址:

[root@xyy admin]#cat /etc/docker/daemon.json 
{
"registry-mirrors":["https://kvuwuws2.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn"]
}
[root@xyy admin]#


[root@xyy admin]#docker info
……
Registry: https://index.docker.io/v1/
……
  • 我们这里尝试拉取下镜像,看下效果:
[root@xyy admin]###docker pull k8s-dns-node-cache:1.21.1
Error response from daemon: pull access denied for k8s-dns-node-cache, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

[root@xyy admin]###docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
3cb635b06aa2: Pull complete
Digest: sha256:b5cfd4befc119a590ca1a81d6bb0fa1fb19f1fbebd0397f25fae164abe1e8a6a
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest

[root@xyy admin]###docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest ffe9d497c324 3 weeks ago 1.24MB
  • 由现象可以看出,目前配置的all镜像源没有该k8s-dns-node-cache:1.21.1镜像。
  • 我们再使用原镜像地址拉取下镜像,看下效果:
[root@xyy admin]###docker pull k8s.gcr.io/dns/k8s-dns-node-cache:1.21.1
Error response from daemon: Get "https://k8s.gcr.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

因为这个是国外镜像仓库地址,我们根本无法访问。

  • 那么现在该怎么办呢?

这个k8s.gcr.io网站无法访问,我们只能做镜像转存了。

可以先把镜像转存到自己的dockerhub账号,然后我们就可以正常拉取镜像了。

如何转存,请看如下方法。

一般的镜像转存:我们先把镜像拉取到本地,然后推送到自己的dockerhub账号就行。