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" ) # 用戶輸入的目標(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" # 刪除臨時鏡像 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-03Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案介紹
這篇文章主要介紹了Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案的相關(guān)資料,兩種方法分別是export/import和save/load兩種方案,文中并對比了它們的差別和應(yīng)用場景,需要的朋友可以參考下2025-03-03docker nginx ssl設(shè)置的實現(xiàn)步驟
本文主要介紹了docker nginx ssl設(shè)置的實現(xiàn)步驟,使用docker運行nginx,配置代理,和ssl設(shè)置,進行https訪問,具有一定的參考價值,感興趣的可以了解一下2023-08-08Docker中實現(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