docker?search?mysql報錯問題分析及解決
問題描述
云服務(wù)器安裝完 Docker 之后,想安裝 mysql,但是通過命令 docker search mysql 查看相應(yīng)版本信息時報錯超時,具體信息如下:
Error response from daemon: Get “https://index.docker.io/v1/search?q=mysql&n=25”: dial tcp 65.49.26.99:443: i/o timeout
問題分析
1、修改配置文件
將之前 /etc/docker/daemon.json 文件中配置的鏡像源修改為騰訊云鏡像源。
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
2、重啟 Docker 服務(wù)
sudo systemctl daemon-reload sudo systemctl restart docker
3、驗證是否生效
docker info | grep -A 3 "Registry Mirrors"
輸出中如果包含以下信息,則說明鏡像源配置成功:
Registry Mirrors: https://mirror.ccs.tencentyun.com/

但此時通過命令 docker search mysql 查看相應(yīng)版本信息時依然報超時錯誤。

這個時候就需要查看是否是服務(wù)器出口訪問受限或者是 DNS 配置異常。
4、測試是否能直連 Docker Hub
curl -v https://index.docker.io/v1/
如果輸出包含 HTTP/1.1 200 OK,說明可以訪問。但此時我們發(fā)現(xiàn)一直處于連接中的狀態(tài):

5、測試 DNS 解析
nslookup index.docker.io
或
dig index.docker.io
看是否能解析出 IP 地址。此處可以 IP 地址是可以正常解析的:

6、查看當(dāng)前 DNS 設(shè)置
cat /etc/resolv.conf

此處可以看到 nameserver 是騰訊云的默認(rèn)內(nèi)網(wǎng) DNS,也沒有問題,無需修改。
那最終能確定問題可能出在:
Docker Hub(index.docker.io)國外服務(wù)器被防火墻或路由策略阻斷導(dǎo)致。這是國內(nèi)騰訊云機(jī)器非常常見的問題:Ping、nslookup 都通,但訪問 https://index.docker.io(443 端口)超時。
表現(xiàn)就是現(xiàn)在的錯誤:
dial tcp 64.13.192.74:443: i/o timeout
解決方法
Docker 搜索(docker search) 默認(rèn)走的是 Docker Hub API(index.docker.io),而不是鏡像加速器鏡像源(registry)。所以即使設(shè)置了 "registry-mirrors",docker search 仍可能訪問不到。
所以有兩個選擇:
1、直接拉取鏡像
不再用 docker search,直接拉取鏡像。例如拉取 MySQL:
docker pull mysql:8.0.43-debian
注意:騰訊云鏡像加速器支持加速拉取,但不支持 docker search。也就是說我們可以按剛才的配置,拉鏡像沒問題,但搜索會超時。
2、使用國內(nèi)鏡像站搜索鏡像
如果非要先搜索一下,再決定是否要拉取的話,就只能通過國內(nèi)的一些鏡像站先搜索,再去拉取,以下是一個在 GitHub 維護(hù)的倉庫,里面有不少鏡像站,大家可以搜索看看:
- DockerHub 國內(nèi)加速鏡像列表
https://github.com/dongyubin/DockerHub
在上面搜索 mysql,可以找到對應(yīng)版本,然后復(fù)制鏡像拉取命令。
總結(jié)
到此這篇關(guān)于docker search mysql報錯問題分析及解決的文章就介紹到這了,更多相關(guān)docker search mysql報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker容器部署rocketmq單機(jī)的全過程
這篇文章主要介紹了使用Docker容器部署rocketmq單機(jī),詳細(xì)介紹了查詢鏡像拉取鏡像的命令,對Docker部署rocketmq相關(guān)知識感興趣的朋友一起看看吧2022-04-04
Docker安裝MySql8并遠(yuǎn)程訪問的實現(xiàn)
本文主要介紹了Docker安裝MySql8并遠(yuǎn)程訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
最新IDEA快速實現(xiàn)Docker鏡像部署運(yùn)行的過程詳解
這篇文章主要介紹了最新IDEA快速實現(xiàn)Docker鏡像部署運(yùn)行的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Docker如何解決tomcat容器啟動成功,無法訪問的問題
這篇文章主要介紹了Docker如何解決tomcat容器啟動成功,無法訪問的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07

