Docker 排错笔记(01): docker pull 出现 connection reset by peer
当你运行容器或者拉取镜像时,有时候会报如下的错误
Error response from daemon: Get https://registry-1.docker.io/v2/: read tcp xxxxx:38828->54.236.165.68:443: read: connection reset by peer
是因为当访问 registry-1.docker.io
的时候,DNS 解析到的 ip 当前不可用。
解决方法也简单,只要找到一个可以正确的 ip ,然后修改 hosts 映射文件即可。
正确的 ip 可以通过 dig 命令查找。
如果你的机器上没有 dig 命令,请先安装它。
$ yum install bind-utils
安装后执行如下命令,可以找到目前可用的 ip 列表,不一定都可以用,你可以一个一个试试看填入 /etc/hosts
$ dig auth.docker.io
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> auth.docker.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40242
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;auth.docker.io. IN A
;; ANSWER SECTION:
auth.docker.io. 19 IN A 54.236.165.68
auth.docker.io. 19 IN A 3.224.96.239
auth.docker.io. 19 IN A 54.161.109.204
auth.docker.io. 19 IN A 34.238.187.50
auth.docker.io. 19 IN A 3.209.182.229
auth.docker.io. 19 IN A 54.165.240.225
auth.docker.io. 19 IN A 35.175.91.243
auth.docker.io. 19 IN A 34.231.251.252
;; Query time: 193 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jul 21 21:46:46 EDT 2021
;; MSG SIZE rcvd: 171
hosts 的映射如下
3.224.96.239 registry-1.docker.io auth.docker.io
此时再 docker pull 就可以正常拉取镜像了。