日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

docker4dotnet #4 使用Azure云存储构建高速 Docker registry

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker4dotnet #4 使用Azure云存储构建高速 Docker registry 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用Docker來構建應用程序最常見的操作就是 docker run 或者 docker pull了,但是由于眾所周知的原因,在國內想要高速穩定的獲取docker hub上面的資源并不是件容易的事情,雖然國內的一些docker社區也提供了所謂的加速器,但是實測結果并不理想。今天這篇文章就給大家介紹一下怎么借助Azure Storage來搭建一個高速的私有 Docker Hub (Registiry)。

一圖解千言,基本上一看你就明白了。我們利用Docker Registry 提供的 Azure Storage 存儲模式,將2個不同的registry 容器連接到同一個blob存儲上,其中一個registry容器運行在Azure香港的數據中心,另外一個運行在我本地docker-machine中。需要docker pull的時候,我們使用香港的容器進行操作,并push到本地的registry中;這個操作其實會把鏡像上傳至Azure的blob存儲中;本地在pull鏡像的時候就可以直接從Azure存儲中下載了,速度非常快,關鍵是更加穩定。

搭建這個環境也很簡單:

1. 使用docker-machine 在香港的Azure數據中心中創建一臺容器化主機

docker-machine create --driver azure --azure-subscription-id {sub-id} --azure-open-port 80 --azure-location "EastAsia" {machine-name}

2. 在Azure Storage中創建存儲帳號,獲取訪問密鑰

如果你有中國版Azure的帳號,建議把這個存儲放置在北京或者上海;如果只有國際版的帳號,放在香港速度也是不錯的。

3. 在香港和本地的docker-machine中分別使用同樣的命令啟動regsitry容器

macOS/linux 腳本

docker run -d -p 5000:5000 \-e REGISTRY_STORAGE=azure \-e REGISTRY_STORAGE_AZURE_ACCOUNTNAME="{Account Name}" \-e REGISTRY_STORAGE_AZURE_ACCOUNTKEY="{access key}" \-e REGISTRY_STORAGE_AZURE_CONTAINER="{storage container name}" \-e REGISTRY_STORAGE_AZURE_REALM="core.chinacloudapi.cn" \--name=registry \--restart=always \registry:2

Windows腳本

docker run -d -p 5000:5000 ^-e REGISTRY_STORAGE=azure ^-e REGISTRY_STORAGE_AZURE_ACCOUNTNAME="{Account Name}" ^-e REGISTRY_STORAGE_AZURE_ACCOUNTKEY="{access key}" ^-e REGISTRY_STORAGE_AZURE_CONTAINER="{storage container name}" ^-e REGISTRY_STORAGE_AZURE_REALM="core.chinacloudapi.cn" ^--name=registry ^--restart=always ^registry:2

注意以上我所使用的是中國版Azure存儲帳號,如果使用國際版,請更新 REGISTRY_STORAGE_AZURE_REALM 這個參數。

4. 使用腳本一次性完成鏡像拉取

macOS或者Linux的腳本 pull-image.sh

 echo There are $# arguments to $0: $*echo Pulling image $3 from docker hub via azure storageecho Usageecho "-------------------------------------------"echo "$1 is the offshore docker-machine name"echo "$2 is the local docker-machine name"echo "$3 is the image name"echo "-------------------------------------------"echo "-> switch to $1"eval $(docker-machine env $1)echo "-> pulling image $3"docker pull $3echo "-> tag image $3 and push to local registry"docker tag $3 localhost:5000/$3docker push localhost:5000/$3echo "-> Pull from registry in localhost into $2"eval $(docker-machine env $2)docker pull localhost:5000/$3docker tag localhost:5000/$3 $3docker rmi localhost:5000/$3echo "-> Done!"

Windows 腳本 pull-image.cmd

 echo offecho Usageecho "-------------------------------------------"echo "%1 is the offshore docker-machine name"echo "%2 is the local docker-machine name"echo "%3 is the image name"echo "-------------------------------------------"echo "-> switch to %1"@FOR /f "tokens=*" %i IN ('docker-machine env %1') DO @%iecho "-> pulling image %3"docker pull $3echo "-> tag image %3 and push to local registry"docker tag %3 localhost:5000/%3docker push localhost:5000/%3echo "-> Pull from registry in localhost into %2"@FOR /f "tokens=*" %i IN ('docker-machine env %2') DO @%idocker pull localhost:5000/%3docker tag localhost:5000/%3 %3docker rmi localhost:5000/%3echo "-> Done!"

當然,你也可以把這個registry容器運行在云端的docker-machine里面,這樣你就可以把這個registry共享給團隊使用了,但是不要忘記加入驗證。

另外,如果你使用的是AWS或者阿里云,Docker Registry也提供了類似的driver可以搭建一樣的環境,具體請參考:https://docs.docker.com/registry/storage-drivers/

相關閱讀:

  • docker4dotnet #1 前世今生 & 世界你好
  • docker4dotnet #2 容器化主機
  • docker4dotnet #3 在macOS上使用Visual Studio Code和Docker開發asp.net core和mysql應用
  • docker – 你應該知道的10件事
  • DockerCon 2016 – 微軟帶來了什么?

請關注微信公眾號 【devopshub】,獲取更多關于DevOps研發運維一體化的信息

?

轉載于:https://www.cnblogs.com/ups216/p/5775215.html

總結

以上是生活随笔為你收集整理的docker4dotnet #4 使用Azure云存储构建高速 Docker registry的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。