我最近不得不調試一個新的 NAS,並且遇到了 docker 的問題。我確實失敗login
了pull
:run
無法在本機docker 中找到映像「nginx:最新」:來自守護程式的錯誤回應:取得「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 時都沒有出現任何問題。我該如何解決?