Docker获取镜像报错docker: Error response from daemon
今天在使用docker获取镜像时,出现了镜像获取报错的问题,找到了解决的方法记一下。
一、问题
➜ ~ docker search sameersbn
Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout
➜ ~ docker pull sameersbn
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
➜ ~
二、处理
第一步:通过dig @114.114.114.114 registry-1.docker.io
找到可用IP
➜ ~ dig @114.114.114.114 registry-1.docker.io ; <<>> DiG 9.8.3-P1 <<>> @114.114.114.114 registry-1.docker.io ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47220 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 4, ADDITIONAL: 9 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;registry-1.docker.io. IN A ;; ANSWER SECTION: registry-1.docker.io. 3600 IN A 54.164.230.151 registry-1.docker.io. 3600 IN A 35.169.231.249 registry-1.docker.io. 3600 IN A 34.205.207.96 registry-1.docker.io. 3600 IN A 34.200.28.105 registry-1.docker.io. 3600 IN A 52.204.202.231 registry-1.docker.io. 3600 IN A 54.152.209.167 registry-1.docker.io. 3600 IN A 52.22.181.254 registry-1.docker.io. 3600 IN A 52.54.216.153 ;; AUTHORITY SECTION: docker.io. 61985 IN NS ns-1827.awsdns-36.co.uk. docker.io. 61985 IN NS ns-1168.awsdns-18.org. docker.io. 61985 IN NS ns-513.awsdns-00.net. docker.io. 61985 IN NS ns-421.awsdns-52.com. ;; ADDITIONAL SECTION: ns-421.awsdns-52.com. 148245 IN A 205.251.193.165 ns-421.awsdns-52.com. 149402 IN AAAA 2600:9000:5301:a500::1 ns-513.awsdns-00.net. 149549 IN A 205.251.194.1 ns-513.awsdns-00.net. 149549 IN AAAA 2600:9000:5302:100::1 ns-1168.awsdns-18.org. 148917 IN A 205.251.196.144 ns-1168.awsdns-18.org. 148917 IN AAAA 2600:9000:5304:9000::1 ns-1827.awsdns-36.co.uk. 148040 IN A 205.251.199.35 ns-1827.awsdns-36.co.uk. 148040 IN AAAA 2600:9000:5307:2300::1 ;; Query time: 60 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Mon Aug 20 22:36:29 2018 ;; MSG SIZE rcvd: 493
第二步:尝试修改/etc/hosts
强制docker.io
相关的域名解析到其它可用IP
54.164.230.151 registry-1.docker.io
保存之后重试:
➜ ~ docker search sameersbn
我们可看到,已经可以获取数据了。
三、使用docker国内镜像
使用 DaoCloud 提供的镜像
Docker For Mac
右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入下面的镜像地址:
http://141e5461.m.daocloud.io
点击 Apply & Restart
按钮使设置生效。
Docker Toolbox 等配置方法请参考帮助文档。