docker鏡像下載的另一種方式(實(shí)測有效!)
目前下載docker大家都是用proxy方式去下載,由于什么原因都懂,這里不討論
用proxy下載方式就變成是這樣,以 dockerpull.cn為例:
docker pull dockerpull.cn/nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 ???????docker tag dockerpull.cn/nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
但并不是每次都那么幸運(yùn),要更換不同代理來來回回下載,
那么為了方便更好的下載,這里整理了一些proxy,并整理成 dockerpull 腳本,邏輯是一樣,你可以這樣使用,使用過程比原來的方式少輸入一個(gè)空格即可:
如:
本應(yīng)該這樣拉:
docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
現(xiàn)在你可以這樣拉
dockerpull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
這樣我找了一些現(xiàn)有已知的proxy,如你有發(fā)現(xiàn)新的,也可手動(dòng)加上:
# 定義鏡像源列表
MIRROR_LIST=(
"dockerproxy.net"
"cr.laoyou.ip-ddns.com"
"docker.1panel.live"
"image.cloudlayer.icu"
"hub.fast360.xyz"
"docker-0.unsee.tech"
"docker.1panelproxy.com"
"docker.tbedu.top"
"dockerpull.cn"
"docker.m.daocloud.io"
"hub.rat.dev"
"docker.kejilion.pro"
"docker.hlmirror.com"
"docker.imgdb.de"
"docker.melikeme.cn"
"ccr.ccs.tencentyun.com"
"pull.loridocker.com"
"docker.sunzishaokao.com"
"dockerhub.icu"
"docker.wanpeng.top"
"docker.anyhub.us.kg"
"docker.fxxk.dedyn.io"
)廢話不說,上dockerpull腳本,自行保存為dockerpull,并chmod +x dockerpull:
#!/bin/bash
# 檢查是否提供了鏡像名稱參數(shù)
if [ -z "$1" ]; then
echo "Usage: $0 <image_name:tag>"
exit 1
fi
# 定義鏡像源列表
MIRROR_LIST=(
"dockerproxy.net"
"cr.laoyou.ip-ddns.com"
"docker.1panel.live"
"image.cloudlayer.icu"
"hub.fast360.xyz"
"docker-0.unsee.tech"
"docker.1panelproxy.com"
"docker.tbedu.top"
"dockerpull.cn"
"docker.m.daocloud.io"
"hub.rat.dev"
"docker.kejilion.pro"
"docker.hlmirror.com"
"docker.imgdb.de"
"docker.melikeme.cn"
"ccr.ccs.tencentyun.com"
"pull.loridocker.com"
"docker.sunzishaokao.com"
"dockerhub.icu"
"docker.wanpeng.top"
"docker.anyhub.us.kg"
"docker.fxxk.dedyn.io"
)
# 用戶輸入的目標(biāo)鏡像名稱
USER_INPUT_IMAGE="$1"
# 判斷是否需要添加 library/ 前綴
if [[ "$USER_INPUT_IMAGE" != */* ]]; then
TARGET_IMAGE="library/$USER_INPUT_IMAGE"
else
TARGET_IMAGE="$USER_INPUT_IMAGE"
fi
# 提取鏡像名和標(biāo)簽
IMAGE_NAME=$(echo "$TARGET_IMAGE" | sed 's/library\///' | sed 's/:.*//')
IMAGE_TAG=$(echo "$TARGET_IMAGE" | sed 's/.*://')
# 遍歷鏡像源列表
for MIRROR in "${MIRROR_LIST[@]}"; do
echo "Trying to pull image from $MIRROR..."
# 拉取鏡像
docker pull "$MIRROR/$IMAGE_NAME:$IMAGE_TAG"
if [ $? -eq 0 ]; then
echo "Successfully pulled image from $MIRROR/$IMAGE_NAME:$IMAGE_TAG"
# 將鏡像標(biāo)簽改回原始的 Docker Hub 標(biāo)簽
docker tag "$MIRROR/$IMAGE_NAME:$IMAGE_TAG" "$TARGET_IMAGE"
echo "Tagged image as $TARGET_IMAGE"
# 刪除臨時(shí)鏡像
docker rmi "$MIRROR/$IMAGE_NAME:$IMAGE_TAG"
echo "Removed temporary image $MIRROR/$IMAGE_NAME:$IMAGE_TAG"
exit 0
else
echo "Failed to pull image from $MIRROR/$IMAGE_NAME:$IMAGE_TAG. Trying next mirror..."
fi
done
echo "Failed to pull image from all mirrors."
exit 1到此這篇關(guān)于docker鏡像下載的另一種方式的文章就介紹到這了,更多相關(guān)docker鏡像下載方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker中如何通過docker-compose部署ELK
Docker?Compose適用于不同的操作系統(tǒng)和云平臺(tái),這篇文章主要介紹了Docker中如何通過docker-compose部署ELK,需要的朋友可以參考下2024-05-05
完美解決docker安裝mysql后Navicat連接不上的問題
這篇文章主要介紹了完美解決docker安裝mysql后Navicat連接不上的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案介紹
這篇文章主要介紹了Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案的相關(guān)資料,兩種方法分別是export/import和save/load兩種方案,文中并對比了它們的差別和應(yīng)用場景,需要的朋友可以參考下2025-03-03
docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟
本文主要介紹了docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟,使用docker運(yùn)行nginx,配置代理,和ssl設(shè)置,進(jìn)行https訪問,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
Docker中實(shí)現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實(shí)戰(zhàn)詳解
持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗(yàn)總結(jié),它用于幫助開發(fā)團(tuán)隊(duì)和交付團(tuán)隊(duì)實(shí)現(xiàn)頻繁且快速的集成,以及測試他們的工作成果,以盡可能快地發(fā)現(xiàn)項(xiàng)目開發(fā)和交付工程中的錯(cuò)誤,本文就給大家詳細(xì)的介紹一下Docker中如何實(shí)現(xiàn)CI和CD,需要的朋友可以參考下2023-08-08

