docker不能pull镜像,虚拟机也连不了网,好像是DNS server的问题。
今天在docker pull的时候出现
docker: Error response from daemon: Get https://registry-1.docker.io/v2/prom/node-exporter/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Aprom%2Fnode-exporter%3Apull&service=registry.docker.io: dial tcp: lookup auth.docker.io on 114.114.114.114:53: read udp 192.168.10.124:52929->114.114.114.114:53: i/o timeout.
网上大多数的命令是
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
但是那样需要重启docker,所以
[root@master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
解决办法:
添加DNS解析
echo "nameserver 114.114.114.114" >>/etc/resolv.conf
echo "nameserver 8.8.8.8" >>/etc/resolv.conf
echo "nameserver 8.8.4.4" >>/etc/resolv.conf #谷歌的dns域名解析地址
排查思路
yum install bind-utils -y
dig @114.114.114.114 registry-1.docker.io
# dig:该命令是用来灵活查询DNS的工具,与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出
@ 指定进行域名解析的域名服务器
-b 使用指定的本机ip地址向域名服务器发送域名查询请求
-f 指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息
-p 指定域名服务器所使用端口号
-t 指定要查询的DNS数据类型(默认为A)
-x 执行逆向域名查询
-4 使用ipv4(默认)
-6 使用ipv6
-h 显示命令帮助信息
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> @114.114.114.114 registry-1.docker.io
; (1 server found)
;; 全局选项:+ cmd
;; Got 回答:
;; ->>头部<<- opcode: 询问, status: NOERROR, id: 15151
;; flags: qr rd ra; QUERY: 1, 回答: 3, 当权者: 0, 另外的: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; 问题部分:
;registry-1.docker.io. IN A
;; 回答部分:
registry-1.docker.io. 36 IN A 44.194.5.25
registry-1.docker.io. 36 IN A 44.207.51.64
registry-1.docker.io. 36 IN A 44.207.96.114
;; Query time: 25 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 四 7月 07 19:16:04 CST 2022
;; MSG SIZE rcvd: 97
With the right goal direction, please do whatever it takes to achieve it, come on!