快速入門:使用 Docker CLI 部署容器執行個體
使用 Azure 容器執行個體在 Azure 中簡潔且快速地執行無伺服器 Docker 容器。 當您開發雲端原生應用程式,而且想要順暢地從本機開發切換到雲端部署時,請視需要部署至容器執行個體。
在本快速入門中,您會使用原生 Docker CLI 命令來部署 Docker 容器,並讓其應用程式可在 Azure 容器執行個體中使用。 Docker 與 Azure 之間的整合可啟用這項功能。 執行 docker run
命令的幾秒之後,您可以瀏覽至容器中執行的應用程式:
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
針對本快速入門,您需要適用於 Windows 或 macOS 的 Docker Desktop 2.3.0.5 版或更新版本。 或安裝適用於 Linux 的 Docker ACI 整合 CLI。
重要
並非所有 Azure 容器執行個體的功能都受到支援。 透過在 aci-integration-beta GitHub 存放庫中建立問題,提供有關 Docker-Azure 整合的意見反應。
建立 Azure 內容
若要使用 Docker 命令來執行 Azure 容器執行個體中的容器,請先登入 Azure:
docker login azure --tenant-id "[tenant ID]"
若要尋找您的租用戶標識碼,請流覽至 Microsoft Entra ID 屬性。
出現提示時,輸入或選取您的 Azure 認證。
執行 docker context create aci
以建立 ACI 內容。 此內容會將 Docker 與您的 Azure 訂用帳戶和資源群組建立關聯,讓您可以建立和管理容器執行個體。 例如,若要建立名為「myacicontext」的內容:
docker context create aci myacicontext
出現提示時,選取您的 Azure 訂用帳戶識別碼,然後選取現有的資源群組,或建立新的資源群組。 如果您選擇新的資源群組,則會在建立時具有系統產生的名稱。 Azure 容器執行個體和所有 Azure 資源相同,都必須部署到資源群組中。 資源群組可讓您組織和管理相關的 Azure 資源。
執行 docker context ls
以確認您已將 ACI 內容新增至您的 Docker 內容:
docker context ls
建立容器
建立 Docker 內容之後,您可以在 Azure 中建立容器。 在此快速入門中,您可以使用公用 mcr.microsoft.com/azuredocs/aci-helloworld
映像。 此映像會封裝以 Node.js 撰寫並提供靜態 HTML 網頁的小型 Web 應用程式。
首先,變更為 ACI 內容。 所有後續的 Docker 命令都會在此內容中執行。
docker context use myacicontext
執行下列 docker run
命令來建立 Azure 容器執行個體,並將連接埠 80 公開至網際網路:
docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld
成功部署的範例輸出:
[+] Running 2/2
⠿ hungry-kirch Created 5.1s
⠿ single--container--aci Done 11.3s
hungry-kirch
執行 docker ps
以取得執行中容器的詳細資料,包括公用 IP 位址:
docker ps
範例輸出會顯示公用 IP 位址,在此案例中是 52.230.225.232:
CONTAINER ID IMAGE COMMAND STATUS PORTS
hungry-kirch mcr.microsoft.com/azuredocs/aci-helloworld Running 52.230.225.232:80->80/tcp
現在請於瀏覽器中移至該 IP 位址。 如果您看到如下的網頁,恭喜您! 您已將 Docker 容器中執行的應用程式成功部署至 Azure。
提取容器記錄
如果您要對容器或其執行的應用程式進行疑難排解 (或只是要檢視其輸出),請先檢視容器執行個體的記錄。
例如,執行 docker logs
命令以查看 ACI 內容中 hungry-kirch 容器的記錄:
docker logs hungry-kirch
輸出會顯示容器的記錄,且應該會顯示您在瀏覽器中檢視應用程式時產生的 HTTP GET 要求。
listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
清除資源
當您完成容器的作業時,請執行 docker rm
以將其移除。 此命令會停止並刪除 Azure 容器執行個體。
docker rm hungry-kirch
下一步
在本快速入門中,您已透過使用 Docker 與 Azure 之間的整合,從公用映像建立 Azure 容器執行個體。 若要深入了解整合案例,請參閱 Docker 文件。
您也可以使用適用於 Visual Studio Code 的 Docker 延伸模組,以取得開發、執行和管理容器、映像和內容的整合式體驗。
若要使用 Azure 工具來建立和管理容器執行個體,請參閱使用 Azure CLI、Azure PowerShell、Azure 入口網站和 Azure Resource Manager 範本的其他快速入門。
如果您想要使用 Docker Compose 在本機定義和執行多容器應用程式,然後切換至 Azure 容器執行個體,請繼續完成教學課程。