教學課程:將容器應用程式部署至 Azure 容器執行個體

這是三部分系列的最後教學課程。 在系列稍早, 已建立 容器映射並 推送至 Azure Container Registry。 本文藉由將容器部署至 Azure 容器執行個體 來完成系列。

在本教學課程中,您已:

  • 將容器從 Azure Container Registry 部署至 Azure 容器執行個體
  • 在瀏覽器中檢視執行中的應用程式
  • 顯示容器的記錄

開始之前

您必須滿足下列需求,才能完成本教學課程:

Azure CLI:您必須在本機計算機上安裝 Azure CLI 2.0.29 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組

Docker:本教學課程假設基本瞭解核心 Docker 概念,例如容器、容器映像和基本 docker 命令。 如需 Docker 和容器基本概念的入門,請參閱 Docker 概觀 \(英文\)。

Docker:若要完成本教學課程,您需要在本機安裝 Docker。 Docker 提供可在 macOSWindowsLinux 上設定 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-password> 取代<service-principal-ID>為您建立以存取登錄的服務主體標識碼和密碼。 將取代 <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 命令,直到狀態從 [擱置] 變更為 [執行中] 為止,這應該需要一分鐘的時間。 當容器為 [執行] 時,請繼續進行下一個步驟。

檢視應用程式和容器記錄

部署成功之後,請使用 az container show 命令顯示容器的完整域名 (FQDN):

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

例如:

"aci-demo.eastus.azurecontainer.io"

若要檢視執行中的應用程式,請瀏覽至您最愛瀏覽器中顯示的 DNS 名稱:

瀏覽器中的 Hello world 應用程式

您也可以檢視容器的記錄輸出:

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 容器執行個體 的程式。 已完成下列步驟:

  • 使用 Azure CLI 從 Azure Container Registry 部署容器
  • 在瀏覽器中檢視應用程式
  • 已檢視容器記錄

現在您已瞭解基本概念,請繼續深入瞭解 Azure 容器執行個體,例如容器群組的運作方式:

Azure Container Instances 中的容器群組