教學課程:建立容器影像以部署至 Azure 容器執行個體

Azure Container Instances 能夠將 Docker 容器部署至 Azure 基礎結構,而不需要佈建任何虛擬機器,或採用較高層級的服務。 在本教學課程中,您會將小型 Node.js Web 應用程式封裝在可使用 Azure Container Instances 執行的容器中。

在本文 (本系列的第 1 部分) 中,您將:

  • 從 GitHub 複製應用程式原始程式碼
  • 從應用程式來源建立容器映像
  • 在本機 Docker 環境中測試映像

在教學課程的第 2 和第 3 部分中,您會將映像上傳至 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 提供可在 macOSWindowsLinux 上設定 Docker 環境的套件。

重要

因為 Azure Cloud shell 不包含 Docker 精靈,所以您「必須」 在「本機電腦」 上安裝 Azure CLI 和 Docker 引擎,才能完成本教學課程。 您無法在此教學課程中使用 Azure Cloud Shell。

取得應用程式程式碼

本教學課程中的範例應用程式是一個以 Node.js 建置的簡單 Web 應用程式。 應用程式會提供靜態 HTML 頁面,類似以下螢幕擷取畫面︰

在瀏覽器中顯示的教學課程應用程式

使用 Git 複製範例應用程式的存放庫:

git clone https://github.com/Azure-Samples/aci-helloworld.git

您也可以直接從 GitHub 下載 ZIP 封存檔

建置容器映像

範例應用程式中的 Dockerfile 會示範如何建置容器。 首先會使用以 Alpine Linux 為基礎的官方 Node.js 映像,這是一個很適合用於容器的小型散發。 接著會將應用程式檔案複製到容器、使用節點套件管理員來安裝相依性,最後就啟動應用程式。

FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js

使用 docker build 命令建立容器映像,並將其標記為 aci-tutorial-app

docker build ./aci-helloworld -t aci-tutorial-app

docker build 命令的輸出與以下類似 (為便於閱讀已將輸出內容截斷):

docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon  119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
 ---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
 ---> Running in f4a1ea099eec
 ---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest

使用 docker images 命令查看已建置的映像:

docker images

您新建置的映像應該會出現在清單中:

docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 seconds ago    68.1 MB

在本機執行容器

將容器部署至 Azure Container Instances 之前,請先使用 docker run 在本機加以執行並確認可以運作。 -d 參數可讓容器在背景中執行,而 -p 可讓您將電腦上的任意連接埠對應至容器中的連接埠 80。

docker run -d -p 8080:80 aci-tutorial-app

如果 docker run 命令執行成功,此命令的輸出會顯示執行中容器的 ID:

docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf

現在,在瀏覽器中瀏覽至 http://localhost:8080 ,以確認容器正在執行。 您應該會看到如下所示的網面:

在本機瀏覽器中執行應用程式

下一步

在本教學課程中,您已建立可部署在 Azure Container Instances 中的容器映像,並確認它可在本機執行。 到目前為止,您已完成下列作業:

  • 從 GitHub 複製應用程式來源
  • 從應用程式來源建立容器映像
  • 在本機測試容器

前往本系列中的下一個教學課程,了解如何在 Azure Container Registry 中儲存容器映像: