教學課程:建立容器影像以部署至 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 提供可在 macOS、Windows 和 Linux 上設定 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 中儲存容器映像: