# Azure Registry Container ## 前言 對於docker有了初步的認識後,接著我們又會遇到一些困難,image一個一個建立,那麼多的image要怎麼管理啊?又或是當我真的要部署網站的時候,要從哪裡去抓,總是不可能要一直開著電腦的docker環境吧?這時候Registry就出現啦! ## 什麼是Regristry? Regristry簡單來說就是一個存放image的資料庫,為了方便管理以及落實DevOps,當然也可以讓CI/CD變得更加容易。 ### 為什麼需要? 舉個例子,當你寫好一個支程式,使用docker build在本地端建立一個image,如果別人要run你寫好的image怎麼辦?如果對方又到github 上下載程式碼在自己docker build一次,不就浪費的docker的本意嗎 這時候Regristry就非常重要了,我們可以選擇使用docker push將image上傳到docker hub,因為docker執行的時候會先去docker hub找有沒有對應的image沒有才會去本地端找,如此一來,就算很多人要一起開發系統,或是遠端server要部署網站,都可以借助Regristry的幫助,達到更高的開發效率。  ### 常見的雲端Registry - DockerHub - Google Container Registry (GCR) - AWS Elastic Container Registry (ECR) - Azure Container Registry (ACR) ### DockerHub不好嗎? 當然沒有問題,DockerHub就像是docker的github可以放很多的image,不過預設都是public需要付費才能解鎖privacy,如果你的image是公司要用的又或是不想要給大家看到,還是需要付費才行。 此外安全性上,三家雲端廠商會有更好安全性還有使用者訪問的權限控制,可以更加方便管控誰可以push和pull不同的image,以私人的image來說,同樣都是要花錢,個人是覺得購買這些雲端服務的Container Registry 會更好一些啦XD ## 實作 本篇主要教大家的實作是建立Microsoft底下的Azure Container Registry,並推送image上去 1. 第一步當然是登入Azure portal介面,選擇container registry  2. 只要輸入registry名稱和選擇group基本上就可以了,如果有特殊需求的話可以選擇不同的pricing plan,最後按下create  3. 接著就可以看到建立好的畫面,會看到standard就有100G的容量,點擊右下角的Repositories  4. 進入Repo後會看到空空如也的資料庫  5. 點擊Access Key,將Admin user打勾,就會出現下方兩組密碼,這個密碼之後登入上傳會用到  6. 安裝[Azure-cli](https://learn.microsoft.com/zh-tw/cli/azure/install-azure-cli),請到網站上下載對應作業系統的檔案,之後上傳的指令都是在azure-cli底下的指令所以一定要先安裝 7. 接著打開寫好的程式碼,建立image,我使用 > docker build -t acrtest . 建立一個名為acrtest的image  8. 建立好之後在終端機按照順序輸入 ```bash= #登入azure az login #登入acr 如果需要密碼就輸入第五步驟得到的密碼 az acr login --name <registry-name> #標記印象檔 docker tag <image-name> <login-server>/<image-name>:tag docker tag acrtest reactdemotest.azurecr.io/arctest:latest #推送上Registry docker push reactdemotest.azurecr.io/arctest:latest ```  9. 最後回到ACR檢查image有沒有推送成功,就大功告成啦~  ## 總結 ACR除了可以跨環境 (包括 Azure Kubernetes Service 和 Azure Red Hat OpenShift) 和跨 Azure 服務 (例如 App Service、Machine Learning 及 Batch) 來連線。還有許多不同的功能,包括人員的權限控制,或是在registry中建立不同的repo以便管理等等,想要學習更多可以直接參考[官方的文件](https://learn.microsoft.com/zh-tw/azure/container-registry/container-registry-concepts) 總之快點投入ACR的懷抱吧!  ## 參考 - [官方文件](https://azure.microsoft.com/zh-tw/products/container-registry) - [快速入門:使用 Azure 入口網站建立 Azure Container Registry](https://learn.microsoft.com/zh-tw/azure/container-registry/container-registry-get-started-portal?tabs=azure-cli) - [開始使用 Azure CLI](https://learn.microsoft.com/zh-tw/cli/azure/get-started-with-azure-cli) - [100 Days of Cloud – Day 85: Security for Azure Containers](https://michaeldurkan.com/2022/05/07/100daysofcloud-day85-securityforazurecontainers/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up