# 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.