我最近不得不委托一个新的 NAS,但遇到了 docker 问题。我遇到的login
s、pull
s 或run
s 确实失败了:
无法在本地找到镜像“nginx:latest”docker:守护进程的错误响应:获取“https://registry-1.docker.io/v2/”:net/http:等待连接时请求被取消(等待标头时超出 Client.Timeout)。请参阅“docker run --help”。
让它工作的唯一方法是改用/etc/resolv.conf
谷歌域名服务器,但这只是权宜之计。在我的本地网络上,我将能找到的每个 docker 域都列入了白名单。
download.docker.com
registry-1.docker.io
production.cloudfare.docker.com
index.docker.io
以下是nslookup https://registry-1.docker.io
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
;; no servers could be reached
这里是sudo resolvectl status
:
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub
Link 2 (eno1) Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported DNS Servers: 192.168.9.1
DNS Domain: LeveNet
Link 3 (eno2) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 4 (docker0) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 7 (br-9e6a1065404c) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 43 (vethb895f20) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 45 (vethe54eaf2) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 47 (veth20ea475) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 59 (veth8c0dc14) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 75 (veth3089223) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
奇怪的是,即使我将路由器设置为使用 Google DNS,服务器仍然无法与 docker.io 配合使用。唯一有效的办法就是更改 resolv.conf。
我不是网络专家,我只是不知道如何永久修复此问题而不影响其他正常运行的东西。此问题绝对是此 NAS 独有的 - 据我所知,网络上的所有其他系统在使用 docker.io 时都没有问题。我该如何修复此问题?