docker拉取鏡像報(bào)錯(cuò):Error?response?from?daemon:?Get?“https://registry-1.docker.io/v2/“:?dial?tcp的解決方案
前言
本文聚焦于解決 Docker 鏡像拉取報(bào)錯(cuò) “Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp …: i/o timeout” 問(wèn)題,從 DNS 解析優(yōu)化(修改 /etc/resolv.conf、在 daemon.json 中指定 DNS、編輯 /etc/hosts)、代理配置(systemd 級(jí) HTTP_PROXY/HTTPS_PROXY、NO_PROXY 繞過(guò) Docker Hub、客戶端臨時(shí)代理)、鏡像 (配置國(guó)內(nèi) registry-mirrors、單次拉取 )、超時(shí)重試(DOCKER_CLIENT_TIMEOUT、COMPOSE_HTTP_TIMEOUT)、服務(wù)重啟(systemctl restart docker、Docker Desktop 重啟)、網(wǎng)絡(luò)狀態(tài)檢查(ping、curl 診斷、NAT 與橋接模式、iptables/firewalld 防火墻、安全組開(kāi)放 443 端口)、系統(tǒng)時(shí)間同步(ntpdate)、MTU 調(diào)整、私有 Registry 支持、 穿透等多維度排查與實(shí)戰(zhàn)方案,助力 Ubuntu、CentOS、macOS、Docker Desktop 等多環(huán)境下,快速定位并徹底解決 Docker pull 超時(shí)、dial tcp、網(wǎng)絡(luò)中斷、鏡像源被Q、代理配置不當(dāng)、DNS 解析失敗等常見(jiàn)故障,實(shí)現(xiàn) Docker 鏡像拉取穩(wěn)定性與 優(yōu)化。
一、摘要
在使用 Docker 拉取鏡像時(shí),常常會(huì)遇到以下錯(cuò)誤:
Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp …: i/o timeout
該問(wèn)題通常由 DNS 解析失敗、網(wǎng)絡(luò)連接中斷、代理設(shè)置不當(dāng)、鏡像源被墻或超時(shí)限制等多種因素引起。本文將匯總?cè)W(wǎng)最新的實(shí)戰(zhàn)方案,按四大方向分類——DNS 解析優(yōu)化、代理配置、鏡像 與超時(shí)調(diào)整,以及服務(wù)重啟與網(wǎng)絡(luò)狀態(tài)檢查,并在此基礎(chǔ)上擴(kuò)展更多排查和優(yōu)化思路,幫助你快速定位并徹底解決該錯(cuò)誤。
二、開(kāi)發(fā)環(huán)境
- 操作系統(tǒng):Ubuntu 20.04 / CentOS 7 / macOS
- Docker 版本:20.10.x
- 網(wǎng)絡(luò)環(huán)境:公司內(nèi)網(wǎng)、校園網(wǎng)及家庭寬帶均適用
三、錯(cuò)誤場(chǎng)景與技術(shù)細(xì)節(jié)
異常復(fù)現(xiàn)場(chǎng)景
執(zhí)行命令:
docker pull nginx:latest
控制臺(tái)輸出:
Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp 34.194.164.123:443: i/o timeout
可能觸發(fā)因素
在排查該問(wèn)題時(shí),千萬(wàn)不要漏掉任何一環(huán),從本地 DNS、操作系統(tǒng)級(jí)網(wǎng)絡(luò),到 Docker 配置,每一步都可能是“罪魁禍?zhǔn)?rdquo;。
四、解決方案詳解
DNS 解析優(yōu)化
配置/etc/resolv.conf
sudo vim /etc/resolv.conf # 添加公共 DNS nameserver 8.8.8.8 nameserver 8.8.4.4 # 如在國(guó)內(nèi)網(wǎng)絡(luò),可再追加 nameserver 114.114.114.114
在 Docker Daemon 中指定 DNS
編輯 /etc/docker/daemon.json
,加入:
{ "dns": ["8.8.8.8", "8.8.4.4"] }
然后重啟:
sudo systemctl daemon-reload sudo systemctl restart docker
編輯/etc/hosts(臨時(shí)方案)
# 先通過(guò) dig 獲取 IP dig registry-1.docker.io +short # 然后在 /etc/hosts 中添加 34.228.211.243 registry-1.docker.io
代理配置
Daemon 級(jí)代理
創(chuàng)建或編輯 /etc/systemd/system/docker.service.d/https-proxy.conf
:
[Service] Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=http://proxy.example.com:443" Environment="NO_PROXY=registry-1.docker.io,localhost,127.0.0.1"
重載并重啟:
sudo systemctl daemon-reload sudo systemctl restart docker
客戶端臨時(shí)代理
export HTTP_PROXY="http://proxy.example.com:80" export HTTPS_PROXY="http://proxy.example.com:443" docker pull nginx:latest
鏡像與超時(shí)調(diào)整
配置國(guó)內(nèi)鏡像器
在 /etc/docker/daemon.json
中添加:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ] }
備用:
{ "registry-mirrors": [ "https://docker.1ms.run", "https://docker.domys.cc", "https://docker.imgdb.de", "https://docker-0.unsee.tech", "https://docker.hlmirror.com", "https://cjie.eu.org", "https://docker.m.daocloud.io", "https://hub.rat.dev", "https://docker.1panel.live", "https://docker.rainbond.cc" ] }
重啟 Docker 生效。
單次拉取
export REPO=docker.m.daocloud.io docker pull ${REPO}/library/nginx:latest
增加超時(shí)重試
export DOCKER_CLIENT_TIMEOUT=120 export COMPOSE_HTTP_TIMEOUT=120
服務(wù)重啟與網(wǎng)絡(luò)狀態(tài)檢查
重啟 Docker 服務(wù)
sudo systemctl restart docker
有時(shí)僅重啟 daemon 即可立刻恢復(fù)。
檢查主機(jī)網(wǎng)絡(luò)
- 確認(rèn)宿主機(jī)/VM 已聯(lián)網(wǎng),必要時(shí)切換 NAT 或橋接模式
- 使用
ping registry-1.docker.io
、curl -vvv https://registry-1.docker.io/v2/
診斷
防火墻 & 安全組
檢查 iptables
、firewalld
、云平臺(tái)安全組是否開(kāi)放 443 端口
臨時(shí)關(guān)閉防火墻測(cè)試:
sudo systemctl stop firewalld sudo iptables -F
更多擴(kuò)展方案
擴(kuò)展場(chǎng)景 | 解決思路 |
---|---|
系統(tǒng)時(shí)間不同步 | 校準(zhǔn) NTP:sudo ntpdate time.windows.com |
MTU 值不匹配 | 調(diào)整網(wǎng)卡 MTU:sudo ip link set dev eth0 mtu 1400 |
內(nèi)部私有 Registry | 在 /etc/docker/daemon.json 添加 insecure-registries |
使用 》〉配置 | 確認(rèn) Docker 也走了系統(tǒng)daili |
Docker Desktop | 直接在 GUI 中重啟,或清理緩存:Docker → Preferences → Clean/Purge |
五、方案總結(jié)
問(wèn)題類型 | 關(guān)鍵命令或配置示例 |
---|---|
DNS 解析 | /etc/resolv.conf / daemon.json 中配置 DNS |
代理設(shè)置 | /etc/systemd/.../https-proxy.conf |
鏡像 | registry-mirrors / 單次 export REPO=… |
超時(shí)調(diào)整 | export DOCKER_CLIENT_TIMEOUT=120 |
服務(wù)重啟 | systemctl restart docker |
防火墻 & 安全組 | iptables -F / firewalld stop |
系統(tǒng)時(shí)間 & MTU | ntpdate / ip link set mtu |
私有 Registry 支持 | insecure-registries |
到此這篇關(guān)于docker拉取鏡像報(bào)錯(cuò):Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp的解決方案的文章就介紹到這了,更多相關(guān)docker拉取鏡像超時(shí)報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker集群Error response from daemon: rpc error問(wèn)題
- 解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:conflict:unable to delete xxx (cannot be forced)
- docker拉取鏡像報(bào)錯(cuò):Error?response?from?daemon:?Get?“https://registry-1.docker.io/v2/“:?dial?tcp的解決過(guò)程
- 解決docker啟動(dòng)容器錯(cuò)誤:docker:Error response from daemon:OCI runtime create failed
- 解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon
- Docker鏡像拉取報(bào)錯(cuò):Error response from daemon: Get https://registry-1.docker.io/v2/的問(wèn)題解決
- Docker獲取鏡像報(bào)錯(cuò)docker: Error response from daemon
- docker:?Error?response?from?daemon的錯(cuò)誤解決
相關(guān)文章
docker安裝fastdfs鏡像的一些注意事項(xiàng)
在安裝docker fastdfs鏡像時(shí)大家需要注意如果是云服務(wù)器則需要在云服務(wù)器后臺(tái)的安全組入口方向放開(kāi)22122、23000以及8888端口,并且在云服務(wù)器防火墻配置放開(kāi)以上三個(gè)端口,具體內(nèi)容詳情大家跟隨小編一起看看吧2021-05-05Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟
這篇文章主要介紹了Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法
本篇文章主要介紹了在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07docker安裝部署 onlyoffice的詳細(xì)過(guò)程
本文給大家分享docker安裝部署 onlyoffice的詳細(xì)過(guò)程,通過(guò)圖文并茂實(shí)例相結(jié)合給大家分享安裝Docker Desktop及如何進(jìn)入BIOS設(shè)置CPU的虛擬化,感興趣的朋友一起看看吧2021-06-06Docker 數(shù)據(jù)管理Named volume詳解
這篇文章主要介紹了Docker 數(shù)據(jù)管理Named volume詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03使用Docker Swarm搭建分布式爬蟲(chóng)集群的方法示例
這篇文章主要介紹了使用Docker Swarm搭建分布式爬蟲(chóng)集群的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Docker在Windows系統(tǒng)中的安裝和使用方法詳解
這篇文章主要給大家介紹了關(guān)于Docker在Windows系統(tǒng)中的安裝和使用方法,Docker允許開(kāi)發(fā)中將應(yīng)用、依賴、函數(shù)庫(kù)、配置一起打包,形成可移植鏡像Docker應(yīng)用運(yùn)行在容器中,需要的朋友可以參考下2023-09-09Docker中Cgroup資源配置的實(shí)現(xiàn)
Cgroup不僅可以限制被namespace?隔離起來(lái)的資源,還可以為資源設(shè)置權(quán)重、計(jì)算使用量、操控進(jìn)程啟停等,本文主要介紹了Docker中Cgroup資源配置的實(shí)現(xiàn),感興趣的可以了解一下2023-09-09