docker換源不生效的原因以及解決方案
docker換源不生效
標題背景
網(wǎng)上一大堆教程告訴你如何換源,怎么執(zhí)行命令,但發(fā)現(xiàn)換源之后,docker pull 仍然拉不下來。
云里霧里不知道什么原因?
歷史操作
- 以阿里云鏡像加速為例,它提供了個人維度的加速鏈接,在這里可以看到 容器鏡像服務(wù)
- 按照上面的操作方式,
vim /etc/docker/daemon.json
將個人加速鏈接配置進去,重啟服務(wù) - 發(fā)現(xiàn) docker pull golang:1.22-alpine 依然報錯,說明沒有走到加速鏡像
Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
- 懷疑緩存導致,清理緩存
docker system prune -a
- 依然無效后,陷入死鎖,在嘗試更換了幾個源之后沒有明顯解決。
原因
因為一些歷史原因,從24年6月,docker 官方收緊了cn地區(qū)的鏡像服務(wù),同時,一些自建的鏡像加速公有云也并沒有完全收錄所有鏡像開放使用,以上面的阿里云鏈接為例
它引導用戶使用制品中心中的鏡像,但那里的鏡像種類和版本,與docker官方的幾乎不相同,
例如想要獲取 golang 鏡像,官方的是類似 golang:1.22-alpine ,但制品中心最新的是:
FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/golang:1.19.4-8.6
看到落后了好幾個版本。但這個確實能很快速的拉取下來。
最終方案
由上可知,根本原因還是源本身的問題,還是需要找到可靠穩(wěn)定的國內(nèi)加速源鏈接,這里找到一個docker服務(wù)狀態(tài)監(jiān)控網(wǎng)站,找到鏡像加速一欄,將其加入到/etc/docker/daemon.json
后,重新嘗試發(fā)現(xiàn)拉取鏡像加速的概率大了很多
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker images,info,-d等命令報錯的解決方法
最近剛接觸Docker,所以在學習的過程中出現(xiàn)了好多的問題,百度上不好找,谷歌的話,樓主不會翻墻。后來通過各方求助和細心研究解決了一些遇到的問題,現(xiàn)在將遇到的問題和解決方法分享給大家,有需要的朋友們可以參考借鑒。2016-11-11Docker安裝node-red、導入節(jié)點、部署查看的步驟詳解
Node-RED設(shè)計使用的場景是IoT,但是作為一個流編排引擎,顯然它能做的事情更多,比如使用容器化的方式進行構(gòu)建、打包、部署等操作也是可行的,這篇文章繼續(xù)介紹Docker安裝node-red、導入節(jié)點、部署查看的相關(guān)知識,感興趣的朋友一起看看吧2022-01-01docker實現(xiàn)mysql主從復(fù)制的示例代碼
Docker它不香嗎?即省去了安裝Mysql所需要的步驟,有多個容器之間相互資源獨立,IP互不沖突,具有一定的參考價值,感興趣的可以了解一下2021-08-08