描述:
在win10下安裝VM,在VM里運(yùn)行docker,使用docker pull拉取鏡像時(shí)報(bào)錯(cuò)
一、
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
原因:
使用docker pull 命令拉取鏡像時(shí),如果不添加額外的信息如docker pull nginx,則會(huì)默認(rèn)鏡像拉取地址為國(guó)外倉(cāng)庫(kù),導(dǎo)致DNS解析超時(shí)。
解決辦法:
1.)修改VM默認(rèn)的DNS為8.8.8.8
2.)使用國(guó)內(nèi)的鏡像倉(cāng)庫(kù)拉取鏡像
二、
Trying to pull repository docker.io/library/nginx ... Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
原因:
也是因?yàn)槭褂脟?guó)外地址,導(dǎo)致http握手失敗。
解決辦法:
1.)每次拉取鏡像時(shí)都手動(dòng)指定國(guó)內(nèi)倉(cāng)庫(kù)地址docker pull registry.docker-cn.com/library/nginx
2.)修改 /etc/docker/daemon.json 文件(把默認(rèn)倉(cāng)庫(kù)地址修改為國(guó)內(nèi)地址,省去每次都手動(dòng)輸入)
vim /etc/docker/daemon.json -> 寫入
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
最后,重啟docker即可systemctl daemon-reload + systemctl restart docker
三、吐槽一下CSDN的markdown是真心難用,很多語(yǔ)法都不支持。
補(bǔ)充:解決docker pull鏡像報(bào)錯(cuò)或者超時(shí)的方案,將拉取地址改為國(guó)內(nèi)鏡像倉(cāng)庫(kù)
docker默認(rèn)鏡像拉取地址為國(guó)外倉(cāng)庫(kù)下載速度較慢,甚至?xí)?bào)如下這種錯(cuò)誤
Error response from daemon: Get https://docker.elastic.co/v2/: net/http: TLS handshake timeout
解決方法修改
/etc/docker/daemon.json 文件并添加上 registry-mirrors 鍵值。然后重啟docker就可以了
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

補(bǔ)充:解決docker在CentOS7下不能下載鏡像timeout的問題
問題
昨天買了六個(gè)月阿里云服務(wù)器的學(xué)生機(jī)用來(lái)部署畢設(shè)環(huán)境,在鼓搗docker的時(shí)候出現(xiàn)問題,docker安裝成功并且已經(jīng)成功啟動(dòng),如圖

但在pull鏡像的時(shí)候卻出現(xiàn)超時(shí)無(wú)法下載鏡像的問題,估計(jì)是國(guó)內(nèi)docker官方鏡像被墻了,網(wǎng)上找了好久發(fā)現(xiàn)要使用國(guó)內(nèi)鏡像加速,推薦的有Daocloud和阿里云,我使用的是Daocloud鏡像加速,注冊(cè)了賬號(hào)之后上方會(huì)有一個(gè)鏡像加速的超鏈接

點(diǎn)進(jìn)去之后還有各種系統(tǒng)的腳本,用于添加國(guó)內(nèi)鏡像加速

運(yùn)行腳本之后再執(zhí)行pull操作,鏡像成功下載

這時(shí)候執(zhí)行docker images可以看到已下載的鏡像

做個(gè)記錄,以免時(shí)間久了會(huì)遺忘
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。