教學課程:將容器應用程式部署至 Azure 容器執行個體
這是三部分系列的最後一個教學課程。 在系列的較前段,我們已建立容器映像並推送至 Azure Container Registry。 本文會將容器部署至 Azure Container Instances,以完成本系列。
在本教學課程中,您已:
- 將容器從 Azure Container Registry 部署至 Azure Container Instances
- 在瀏覽器中檢視執行中的應用程式
- 顯示容器的記錄
開始之前
您必須滿足下列需求,才能完成本教學課程:
Azure CLI:您必須在本機電腦上安裝 Azure CLI 2.0.29 版或更新版本。 若要尋找版本,請執行 az --version
。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。
Docker:本教學課程假設使用者對核心 Docker 概念有基本認識,像是容器、容器映像和基本 docker
命令。 如需 Docker 和容器基本概念的入門,請參閱 Docker 概觀 \(英文\)。
Docker: 若要完成本教學課程,您需要在本機安裝 Docker。 Docker 提供可在 macOS、Windows 和 Linux 上設定 Docker 環境的套件。
重要
因為 Azure Cloud shell 不包含 Docker 精靈,所以您「必須」在「本機電腦」上安裝 Azure CLI 和 Docker 引擎,才能完成本教學課程。 您無法在此教學課程中使用 Azure Cloud Shell。
使用 Azure CLI 來部署容器
在本節中,您會使用 Azure CLI 來部署第一個教學課程內建且在第二個教學課程中推送至 Azure Container Registry 的映像。 在繼續之前,請務必先完成這些教學課程。
取得登錄認證
當您部署私人 Azure 容器登錄 (類似於第二個教學課程中建立的容器登錄) 中裝載的映像時,必須提供用來存取登錄的認證。
許多案例的最佳做法都是建立並設定具有登錄「提取」權限的 Microsoft Entra 服務主體。 請參閱使用來自 Azure 容器執行個體的 Azure Container Registry 進行驗證,從中取得範例指令碼以建立具有必要權限的服務主體。 請記下服務主體識別碼和服務主體密碼。 您在部署容器時會使用這些認證來存取登錄。
您也需要容器登錄登入伺服器的完整名稱 (以您的登錄名稱取代 <acrName>
):
az acr show --name <acrName> --query loginServer
部署容器
現在,使用 az container create 命令來部署容器。 將 <acrLoginServer>
更換為您從上一個命令取得的值。 將 <service-principal-ID>
和 <service-principal-password>
更換為為了存取登錄而建立的服務主體識別碼和密碼。 將 <aciDnsLabel>
更換為所需的 DNS 名稱。
az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --ip-address Public --dns-name-label <aciDnsLabel> --ports 80
在幾秒內,您應該會從 Azure 收到首次回應。 --dns-name-label
值在您建立容器執行個體所在的 Azure 區域中必須是唯一的。 如果您在執行命令時收到 DNS 名稱標籤錯誤訊息,請修改上方命令中的值。
確認部署進度
若要檢視部署的狀態,請使用 az container show:
az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state
重複執行 az container show 命令,直到狀態從 [擱置] 變更為 [執行中],這應該會在一分鐘內完成。 當容器狀態為 Running (執行中) 時,請繼續進行下一個步驟。
檢視應用程式和容器記錄
部署成功之後,請使用 az container show 命令來顯示容器的完整網域名稱 (FQDN):
az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn
例如:
"aci-demo.eastus.azurecontainer.io"
若要查看執行中的應用程式,在您慣用的瀏覽器中瀏覽至顯示的 DNS 名稱:
您也可以檢視容器的記錄輸出:
az container logs --resource-group myResourceGroup --name aci-tutorial-app
範例輸出︰
listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
清除資源
如果您已不再需要在這個教學課程系列中建立的任何資源,便可以執行 az group delete 命令來移除資源群組及其包含的所有資源。 此命令會刪除您所建立的容器登錄、執行中的容器,以及所有相關資源。
az group delete --name myResourceGroup
下一步
在本教學課程中,您已完成將容器部署至 Azure Container Instances 的程序。 已完成下列步驟:
- 使用 Azure CLI 從 Azure Container Registry 部署容器
- 在瀏覽器中檢視應用程式
- 檢視容器記錄
您現在已有基本概念,請繼續深入了解 Azure Container Instances,例如容器群組的運作方式: