成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

docker4dotnet #4 使用Azure云存儲搭建高速 Docker registry

開發 開發工具
今天這篇文章就給大家介紹一下怎么借助Azure Storage來搭建一個高速的私有 Docker Hub (Registiry)。

Docker

使用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數據中心中創建一臺容器化主機

  1. docker-machine create --driver azure --azure-subscription-id {sub-id} --azure-open-port 80 {machine-name} 

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

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

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

macOS/linux 腳本

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

Windows腳本

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

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

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

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

  1. echo There are $# arguments to $0: $* 
  2.  echo Pulling image $3 from docker hub via azure storage 
  3.  echo Usage 
  4.  echo "-------------------------------------------" 
  5.  echo "$1 is the offshore docker-machine name" 
  6.  echo "$2 is the local docker-machine name" 
  7.  echo "$3 is the image name" 
  8.  echo "-------------------------------------------" 
  9.   
  10.  echo "-> Swithc to $1" 
  11.  eval $(docker-machine env $1) 
  12.  echo "-> pulling image $3" 
  13.  docker pull $3 
  14.  echo "-> tag image $3 and push to local registry" 
  15.  docker tag $3 localhost:5000/$3 
  16.  docker push localhost:5000/$3 
  17.  echo "-> Pull from registry in localhost into $2" 
  18.  eval $(docker-machine env $2) 
  19.  docker pull localhost:5000/$3 
  20.  docker tag localhost:5000/$3 $3 
  21.  docker rmi localhost:5000/$3 
  22.  echo "-> Done!" 

Windows 腳本 pull-image.cmd

  1. echo off 
  2. echo There are $# arguments to $0: $* 
  3. echo Pulling image $3 from docker hub via azure storage 
  4. echo Usage 
  5. echo "-------------------------------------------" 
  6. echo "%1 is the offshore docker-machine name" 
  7. echo "%2 is the local docker-machine name" 
  8. echo "%3 is the image name" 
  9. echo "-------------------------------------------" 
  10.  
  11. echo "-> Swithc to %1" 
  12. @FOR /f "tokens=*" %i IN ('docker-machine env %1') DO @%i 
  13. echo "-> pulling image %3" 
  14. docker pull $3 
  15. echo "-> tag image %3 and push to local registry" 
  16. docker tag %3 localhost:5000/%3 
  17. docker push localhost:5000/%3 
  18. echo "-> Pull from registry in localhost into %2" 
  19. @FOR /f "tokens=*" %i IN ('docker-machine env %2') DO @%i 
  20. docker pull localhost:5000/%3 
  21. docker tag localhost:5000/%3 %3 
  22. docker rmi localhost:5000/%3 
  23. echo "-> Done!" 

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

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

【本文為51CTO專欄作者“徐磊”的原創稿件,轉載請通過作者微信公眾號devopshub獲取授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-02-14 16:39:56

docker容器化主機

2017-02-14 15:51:16

docker開發調試

2017-02-14 20:15:15

docker容器持續交付

2017-03-01 09:20:30

2017-08-28 09:03:11

簡化云存儲管理

2017-06-23 08:29:49

Azure托管云存儲

2014-12-17 15:18:27

LinuxMonoWindows

2009-11-26 13:12:16

Silverlight

2015-01-14 11:04:07

微軟Microsoft AVM

2018-09-17 10:47:28

MongoDB存儲Docker

2014-03-17 10:05:45

Hadoop集群

2024-10-16 09:49:18

2016-09-08 16:04:59

JavaDocker前端

2023-04-07 08:28:14

2011-11-21 10:41:51

私有云云存儲

2016-11-14 20:56:37

Docker數據中心服務器

2009-08-27 11:01:18

ibmdw云計算

2014-11-19 15:12:47

微軟Azure Encoding R

2018-08-14 10:31:18

私有云存儲公有云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区 | 成人性生交大片免费看中文带字幕 | 国产精品美女久久久久aⅴ国产馆 | 9久9久9久女女女九九九一九 | 一级黄色片免费 | 在线激情视频 | 亚洲九色 | 在线免费观看a级片 | 日韩a级片| 中文字幕一区二区三区四区 | 国产成人午夜高潮毛片 | 性一爱一乱一交一视频 | 欧美在线综合 | 日本理论片好看理论片 | 久久综合久色欧美综合狠狠 | 精品国产一区二区 | 日本网站免费在线观看 | 国产精品高潮呻吟久久 | 美女天天干天天操 | 亚洲国产一区二区三区在线观看 | 日本久久久一区二区三区 | 国产乱码精品一区二区三区忘忧草 | 国产一区 | 黄色片视频网站 | 在线黄 | 日韩免费激情视频 | 午夜播放器在线观看 | 日韩欧美在线视频 | 国产一区二区免费 | 69av在线视频 | 成人免费福利视频 | 日日夜夜免费精品视频 | 欧美一区二区三区在线 | 中文字幕日韩在线观看 | 日本久久www成人免 成人久久久久 | 日本特黄a级高清免费大片 成年人黄色小视频 | 91中文视频 | 亚洲国产成人精品女人久久久 | 91素人| 91亚洲精选| 男女羞羞在线观看 |