docker鏡像下載的另一種方式(實測有效!)
目前下載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
但并不是每次都那么幸運,要更換不同代理來來回回下載,
那么為了方便更好的下載,這里整理了一些proxy,并整理成 dockerpull 腳本,邏輯是一樣,你可以這樣使用,使用過程比原來的方式少輸入一個空格即可:
如:
本應(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)新的,也可手動加上:
# 定義鏡像源列表
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"
)
# 用戶輸入的目標鏡像名稱
USER_INPUT_IMAGE="$1"
# 判斷是否需要添加 library/ 前綴
if [[ "$USER_INPUT_IMAGE" != */* ]]; then
TARGET_IMAGE="library/$USER_INPUT_IMAGE"
else
TARGET_IMAGE="$USER_INPUT_IMAGE"
fi
# 提取鏡像名和標簽
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"
# 將鏡像標簽改回原始的 Docker Hub 標簽
docker tag "$MIRROR/$IMAGE_NAME:$IMAGE_TAG" "$TARGET_IMAGE"
echo "Tagged image as $TARGET_IMAGE"
# 刪除臨時鏡像
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)和云平臺,這篇文章主要介紹了Docker中如何通過docker-compose部署ELK,需要的朋友可以參考下2024-05-05
完美解決docker安裝mysql后Navicat連接不上的問題
這篇文章主要介紹了完美解決docker安裝mysql后Navicat連接不上的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧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è)置的實現(xiàn)步驟
本文主要介紹了docker nginx ssl設(shè)置的實現(xiàn)步驟,使用docker運行nginx,配置代理,和ssl設(shè)置,進行https訪問,具有一定的參考價值,感興趣的可以了解一下2023-08-08
Docker中實現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實戰(zhàn)詳解
持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗總結(jié),它用于幫助開發(fā)團隊和交付團隊實現(xiàn)頻繁且快速的集成,以及測試他們的工作成果,以盡可能快地發(fā)現(xiàn)項目開發(fā)和交付工程中的錯誤,本文就給大家詳細的介紹一下Docker中如何實現(xiàn)CI和CD,需要的朋友可以參考下2023-08-08

