Docker拉取容器鏡像超時的問題解決辦法
【問題】
在 2024年6月,由于非常隱晦的原因,國內(nèi)各大容器鏡像服務提供方限制或關(guān)閉服務。這導致了在大陸的 IT 工程師拉取鏡像時出現(xiàn)超時的情況,無疑對工作產(chǎn)生了很大的影響。
【解決】
方案一:配置 Docker 鏡像加速器
針對 Docker 客戶端版本大于 1.10.0 的用戶 您可以通過修改 daemon 配置文件 /etc/docker/daemon.json
來使用加速器:
如果在拉取鏡像時發(fā)現(xiàn)又超時了,可以嘗試繼續(xù)更換其他鏡像加速器地址。
sudo vim /etc/docker/daemon.json # 添加以下內(nèi)容 { "registry-mirrors": [ "https://docker.1ms.run/", "https://hub.rat.dev/", "https://docker.1panel.live/", "https://docker.m.daocloud.io/" ] } sudo systemctl daemon-reload sudo systemctl restart docker
方案二:配置代理,拉取鏡像
已經(jīng)使用 Docker 鏡像加速器時,無需配置代理。
創(chuàng)建配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
添加配置:
[Service] Environment="HTTP_PROXY=socks5://user:pass@127.0.0.1:1080" Environment="HTTPS_PROXY=socks5://user:pass@127.0.0.1:1080"
重啟 Docker:
sudo systemctl daemon-reload sudo systemctl restart docker
查看環(huán)境變量:
sudo systemctl show --property=Environment docker
方案三:通過中介設(shè)備傳送鏡像
使用一臺能夠正常拉取 Docker Hub 鏡像的設(shè)備,將鏡像拉取到本地,然后傳送到無法拉取鏡像的設(shè)備上。
例如以下示例中規(guī)定:A 設(shè)備可以正常拉取 Docker Hub 鏡像,B 設(shè)備無法拉取 Docker Hub 鏡像。示例中將 mysql:8.0.33 鏡像從 A 設(shè)備傳送至 B 設(shè)備。
- A 設(shè)備壓縮鏡像
在 A 設(shè)備中的 a-demo 目錄下,將 mysql:8.0.33 鏡像保存為 mysql:8.0.33.tar。壓縮后的 tar 文件會被保存在執(zhí)行命令的當前目錄下:
docker save mysql:8.0.33 > mysql:8.0.33.tar
- A 設(shè)備傳送鏡像至 B 設(shè)備的 /b-demo 目錄下
sftp root@[ip] put /Users/hayden/Desktop/a-demo/mysql:8.0.33.tar /b-demo/
- B 設(shè)備加載鏡像:
docker load < mysql:8.0.33.tar
總結(jié)
到此這篇關(guān)于Docker拉取容器鏡像超時問題解決辦法的文章就介紹到這了,更多相關(guān)Docker拉取容器鏡像超時內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker-compose部署MySQL8的實現(xiàn)
本文主要介紹了docker-compose部署MySQL8的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-11-11