教學課程:準備 AKS 的應用程式

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

在本教學課程中,當您使用 Azure Arc 啟用 Azure Kubernetes Service 時,多容器應用程式已準備好在 Kubernetes 叢集上使用。Docker Compose 等現有開發工具可用來在本機建置和測試應用程式。

您會了解如何:

  • 從 GitHub 複製應用程式來源的範例
  • 從範例應用程式來源建立容器映像
  • 在本機 Docker 環境中測試多容器應用程式

完成後,就可在本機開發環境中執行下列應用程式:

此螢幕快照顯示 Azure 投票應用程式在本機執行的容器映像,會在本機網頁瀏覽器中開啟。

在稍後的教學課程中,容器映射會上傳至 Azure Container Registry,然後部署到 Kubernetes 叢集。

開始之前

本教學課程假設使用者對核心 Docker 概念有基本認識,例如容器、容器映像和 docker 命令。 如需容器基本概念的入門參考資料,請參閱開始使用 Docker

若要完成此教學課程,您需要一個執行 Linux 容器的本機 Docker 開發環境。 Docker 提供可在 Windows 上設定 Docker 的套件。

注意

AKS 不包含完成這些教學課程中每個步驟所需的 Docker 元件。 因此,我們建議使用完整的 Docker 開發環境。

取得應用程式程式碼

本教學課程中使用的範例應用程式是由前端 web 元件和後端 Redis 執行個體所組成的基本投票應用程式。 Web 元件會封裝至自訂容器映像。 Redis 執行個體會從 Docker Hub 使用未修改的映像。

使用 GitHub 將範例應用程式複製到您的開發環境:

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

變更為複製的目錄:

cd azure-voting-app-redis

目錄內有應用程式原始程式碼、預先建立的 Docker Compose 檔案和 Kubernetes 資訊清單檔。 整套教學課程都會使用到這些檔案。 目錄的內容和結構如下所示:

azure-voting-app-redis
│   azure-vote-all-in-one-redis.yaml
│   docker-compose.yaml
│   LICENSE
│   README.md
│
├───azure-vote
│   │   app_init.supervisord.conf
│   │   Dockerfile
│   │   Dockerfile-for-app-service
│   │   sshd_config
│   │
│   └───azure-vote
│       │   config_file.cfg
│       │   main.py
│       │
│       ├───static
│       │       default.css
│       │
│       └───templates
│               index.html
│
└───jenkins-tutorial
        config-jenkins.sh
        deploy-jenkins-vm.sh

建立容器映像

您可以使用 Docker Compose 自動建置容器映像和部署多容器應用程式。

使用範例 docker-compose.yaml 檔案可建立容器映像、下載 Redis 映像,以及啟動應用程式:

docker-compose up -d

完成時,使 docker images 命令來查看所建立的映像。 已下載或建立三個映像。 azure-vote-front 映像包含前端應用程式,並使用 nginx-flask 映像作為基礎映像。 redis 映像可用來啟動 Redis 執行個體。

$ docker images

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        9 seconds ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                     python3.6           a16ce562e863        6 weeks ago         944MB

執行 docker ps 命令可查看執行中的容器:

$ docker ps

CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                           NAMES
d10e5244f237        mcr.microsoft.com/azuredocs/azure-vote-front:v1   "/entrypoint.sh /sta…"   3 minutes ago       Up 3 minutes        443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
21574cb38c1f        mcr.microsoft.com/oss/bitnami/redis:6.0.8         "/opt/bitnami/script…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp          azure-vote-back

在本機測試應用程式

若要查看執行中的應用程式,請在本機網頁瀏覽器中輸入 http://localhost:8080。 系統會載入範例應用程式,如下列範例所示:

此螢幕快照顯示本機網頁瀏覽器中開啟的容器映像。

清除資源

現在已驗證應用程式的功能,您可以停止並移除執行中的容器。 請勿刪除容器映射 - 在下一個教學課程中,azure-vote-front 映射會上傳至 Azure Container Registry 實例。

使用 docker-compose down 命令停止並移除容器執行個體和資源:

docker-compose down

當您移除本機應用程式時,您有一個 Docker 映射,其中包含 Azure Vote 應用程式 azure-vote-front,以供下一個教學課程使用。

後續步驟

在本教學課程中,應用程式已經過測試並已建立應用程式的容器映像。 您已了解如何︰

  • 從 GitHub 複製應用程式來源的範例
  • 從範例應用程式來源建立容器映像
  • 在本機 Docker 環境中測試多容器應用程式

繼續進行下一個教學課程,以了解如何在 Azure Container Registry 中儲存容器映像。