Docker 排错笔记(01): docker pull 出现 connection reset by peer

作者: 王炳明 分类: Docker 发布时间: 2021-07-22 10:10 热度:6,405

当你运行容器或者拉取镜像时,有时候会报如下的错误

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 就可以正常拉取镜像了。

文章有帮助,请作者喝杯咖啡?

发表评论