網(wǎng)站文章優(yōu)化事項百度競價開戶流程
當使用docker pull
或docker run
時遇到net/http: request canceled while waiting for connection
的報錯,說明Docker客戶端在訪問Docker Hub時出現(xiàn)網(wǎng)絡(luò)連接問題??梢圆挥脪旒铀倨饕材芙鉀Q,linux不好用clash。以下是經(jīng)過驗證的方法(感謝軒轅鏡像)
故障現(xiàn)象
執(zhí)行Docker命令時提示:
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/":
net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
錯誤根源分析
-
網(wǎng)絡(luò)訪問限制
Docker Hub(registry-1.docker.io)位于海外服務(wù)器,部分地區(qū)/網(wǎng)絡(luò)環(huán)境可能受限制 -
DNS解析失敗
默認域名解析服務(wù)無法正確解析Docker倉庫地址 -
長距離網(wǎng)絡(luò)延遲
跨國網(wǎng)絡(luò)傳輸容易導(dǎo)致連接超時(默認Docker客戶端超時時間為30秒)
解決方案:配置鏡像加速器
步驟一:設(shè)置Registry Mirror
# 創(chuàng)建/修改配置文件(注意備份原文件)
sudo vim /etc/docker/daemon.json# 錄入以下內(nèi)容(關(guān)鍵配置)
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me",]
}
(操作前建議通過curl -I https://docker.xuanyuan.me/v2/
驗證鏡像地址可達性)
步驟二:應(yīng)用配置并重啟服務(wù)
# 重載守護進程配置
sudo systemctl daemon-reload# 完全重啟docker服務(wù)
sudo systemctl restart docker# 驗證配置生效
docker info | grep "Registry Mirrors" -A 2
測試優(yōu)化技巧
1 網(wǎng)絡(luò)診斷命令
# 查看容器網(wǎng)絡(luò)路由
docker run --rm alpine ping -c 4 docker.com# DNS檢測
docker run --rm busybox nslookup registry-1.docker.io
常見問題排查
-
配置文件格式錯誤
JSON格式錯誤會導(dǎo)致Docker啟動失敗,可通過sudo journalctl -u docker.service
查看日志 -
鏡像源認證需求
部分鏡像源(如阿里云鏡像)需注冊后獲取專屬加速地址 -
持續(xù)超時問題
# 檢查防火墻規(guī)則 sudo iptables -L -n# 嘗試指定IPv4強制訪問 echo '{"ipv6": false}' | sudo tee /etc/docker/daemon.json