docker下载镜像出现Error response from daemon: Get https:///v2/library/nginx/manifests/1.14-alpine: Get https:///token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.docker.异常

  • 主要原因
  • 第一种原因解决方案(解析ip不可用)
  • 第二种解决方案因为dns域名没有解析的原因


今天在linux系统下学习Docker的时候出现了镜像下载报错的问题提示请求超时,查阅各种论坛没解决最终在一位大牛的帮助下才弄好,接下来给三种解决方案。

主要原因

  1. 解析ip不可用
  2. 是因为dns域名没有解析的原因;

第一种原因解决方案(解析ip不可用)

第一种原因是因为docker解析的IP失效或者不能正常访问所引起的请求超时这个时候我们就想要去配置docker的解析ip
我们想要下载一个big命令如下:

[root@wangqi]# yum install bind-utils

下载成功后使用查询可用big查询可用的ip:
dig @114.114.114.114 这个时候就会出现很多的ip:

; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> @114.114.114.114  ; (1 server found)
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64159
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;. IN A
 ;; ANSWER SECTION:
. 38 IN A 34.233.151.211
. 38 IN A 34.206.236.31
. 38 IN A 34.199.77.19
. 38 IN A 34.232.31.24
. 38 IN A 34.201.196.144
. 38 IN A 52.2.186.244
. 38 IN A 52.22.201.61
. 38 IN A 34.228.211.243
 ;; Query time: 23 msec
 ;; SERVER: 114.114.114.114#53(114.114.114.114)
 ;; WHEN: Wed Aug 07 04:47:30 EDT 2019
 ;; MSG SIZE rcvd: 177

从中我们选择一个ip就可以了,这里我们选择34.199.77.19(随机选择都可以用的)
然后在 /etc/hosts目录下去修改的域名解析到其它可用IP
命令如下:

vi /etc/host

把我们刚刚的ip加进去:

34.199.77.19

保存后重启下docker命令:

systemctl restart docker

再pull下载就ok了

dockerhub 如何下载映像 docker映像下载失败_dockerhub 如何下载映像

第二种解决方案因为dns域名没有解析的原因

我出的问题就属于第二种问题,因为镜像是学习素材copy的所以没有考虑dns配置废话不多说来说说解决方案

docker pull 镜像时报错:

Error response from daemon: Get https:///v2/library/nginx/manifests/1.14-alpine: Get https:///token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.: dial tcp: lookup : no such host

这是一个请求头超时异常,说白了就是你的docker请求不到外网无法去docker官网下载镜像!!!

记住报错的结尾提示的是 no such host 这个异常是你的dns域名没有解析的原因所以我们对症下药

通过命令去我们linux的dns配置 文件

vi /etc/resolv.conf 新增谷歌的dns域名解析地址:

nameserver 8.8.4.4

再配置一个默认解析地址(如果有请忽略)

nameserver localdomain

dockerhub 如何下载映像 docker映像下载失败_java_02


保存后重启下docker命令:

systemctl restart docker

重新去下载你需要的镜像就ok了
欢迎在下方留言,一起成长