實驗室 14:實作容器化解決方案

Microsoft Azure 使用者介面

基於 Microsoft 雲端工具的動態性質,您可能會遇到在本訓練內容開發後變更的 Azure UI。 因此,實驗指示可能無法正確對應實驗步驟。

當社群提醒 Microsoft 需要做修改時,我們會更新此訓練課程。 然而,雲端更新經常發生,所以您可能會在此訓練內容更新前遇到 UI 的變更。 如果發生這種情況,請適應變更,然後視需要在實驗中調整。

指示

在您開始使用 Intune 之前

登入實驗室環境

使用下列認證登入您的 Windows 11 虛擬機器 (VM):

  • 使用者名稱:Admin
  • 密碼:Pa55w.rd

注意:您的講師會提供連線至虛擬實驗室環境的指示。

檢閱已安裝的應用程式

尋找 Windows 11 桌面上的工作列。 工作列包含此次實驗中會用到的應用程式圖示:

  • Microsoft Edge

實驗情境

在本實驗中,您將探索如何使用 .NET 應用程式和 Docker 檔案,建立容器並將其部署至 Container Registry。

架構圖

說明使用者使用 Azure 內容傳遞網路強化 Web 應用程式的結構圖

練習 1:在 Azure 中建立和執行容器

工作 1:建立 Container Registry

  1. 在工作列上,選取 Microsoft Edge 圖示。

  2. 在瀏覽器視窗中,瀏覽至 Azure 入口網站 (https://portal.azure.com),然後登入您在此實驗要用的帳戶。

  3. 選取頁面左上角的 [+ 建立資源]**

  4. 在搜尋列中,輸入 Container Registry,然後從結果中選取 [Container Registry]**

  5. 選取 建立

  6. 在 [建立 Container Registry]** 頁面的 [基本]** 索引標籤中,填寫下列資訊 (讓其他資訊保留預設值):

    設定 動作
    [訂閱] 文字輸入框 保留預設值
    [資源群組] 區段 選取 [新建]**、輸入 **acr-sam-rg,然後選取 [確定]**
    [登錄名稱]** 區段 輸入 acrsam[yourname]
    [位置] 下拉式清單 選取 [美國東部]
    [定價方案]** 下拉式清單 選取 [基本]
  7. 選取 [檢閱 + 建立]** 以檢閱您的設定,然後選取 [建立]**。

    注意:等待部署完成。 這可能需要數分鐘的時間。

  8. 在 [概觀]** 刀鋒視窗上,選取 [前往資源]** 按鈕以瀏覽至新建的容器登錄帳戶的刀鋒視窗。

  9. 在 [容器登錄] **  刀鋒視窗的 [設定]   區段中,選取 [存取金鑰]**。

  10. 在 [存取密鑰] **  刀鋒視窗上,啟用 [管理使用者]**。

  11. 將 [使用者名稱] ** 方塊的值複製到剪貼簿。

  12. 開啟 [記事本],然後將複製的值貼到 [記事本]。 您會在稍後的實驗中用到此值。

恭喜! 您已成功在 Azure 中建立了 Container Registry。

工作 2:建立 Docker 檔案以建置容器映像

  1. 開啟 [檔案總管]** 視窗,瀏覽至 **Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14,然後開啟文字編輯器。

  2. 在您的專案目錄中建立一個新檔案,並將它命名為 Dockerfile

  3. Dockerfile 中,新增下列程式碼:

    
     FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
     WORKDIR /app
     EXPOSE 5151
    
     ENV ASPNETCORE_URLS=http://+:5151
    
     # Creates a non-root user with an explicit UID and adds permission to access the /app folder
     # For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers
     RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
     USER appuser
    
     FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
     ARG configuration=Release
     WORKDIR /src
     COPY ["<web-app-name>.csproj", "./"]
     RUN dotnet restore "<web-app-name>.csproj"
     COPY . .
     WORKDIR "/src/."
     RUN dotnet build "<web-app-name>.csproj" -c $configuration -o /app/build
    
     FROM build AS publish
     ARG configuration=Release
     RUN dotnet publish "<web-app-name>.csproj" -c $configuration -o /app/publish /p:UseAppHost=false
    
     FROM base AS final
     WORKDIR /app
     COPY --from=publish /app/publish .
     ENTRYPOINT ["dotnet", "<web-app-name>.dll"]
    
    
  4. 請務必以您的 .NET 8 Web 應用程式專案的名稱來取代 <web-app-name>

  5. 儲存該 Dockerfile

恭喜! 您已成功建立了 Docker 檔案。

工作 3:使用 Docker 檔案在 Azure 上建立 Linux 容器

確定您已在本機電腦上安裝了 Docker CLI。 如果您沒有,請從 Docker 網站進行安裝。

  1. 在工作列上,選取終端機圖示。

  2. 在開啟的命令提示字元中,輸入下列命令,然後選取 [輸入] 來登入 Azure 命令列介面 (CLI):

     az login
    
  3. Microsoft Edge 瀏覽器視窗中,輸入 Microsoft 帳戶的電子郵件地址和密碼,然後選取 [登入]。

  4. 返回目前開啟的終端機 [命令提示字元]** 視窗。 等候登入流程完成。

  5. 輸入下列命令,然後選取 [輸入],將目前的目錄變更為包含實驗室檔案的 Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14 目錄:

     cd 'F:\Allfiles\Labs\14\Starter\webapp-lab14\'
    
  6. 執行下列命令,將原始程式碼上傳至您的容器登錄,並將容器映像建置為 Container Registry 工作、將 取代為您的 Container Registry 的名稱,並將 取代為您映像的新名稱:

     az acr build --registry <your-registry-name> --image <image-name>:latest .
    

    注意:等候組建工作完成,再繼續進行實驗。

  7. 關閉 [終端機]** 窗格。

  8. 開啟 Azure 入口網站並瀏覽至您的 Container Registry。

  9. 在 [容器登錄] **  刀鋒視窗的 [服務]   區段中,選取 [存放庫]**。

  10. 確認您的 Docker 映像已列在存放庫中。

恭喜! 您已成功使用 Docker 檔案在 Azure 上建立了 Linux 容器。

工作 4:將 Linux 容器映像部署至 Azure 容器執行個體

  1. 在 Azure 入口網站上,選取頁面左上角的 [+ 建立資源]**

  2. 在搜尋列中,輸入容器執行個體,然後從結果中選取 [容器執行個體]**

  3. 選取 建立

  4. 在 [建立容器執行個體]** 頁面的 [基本]** 索引標籤上,填寫下列資訊 (讓其他資訊保留預設值),然後選取下一步:網路

    設定 動作
    [訂閱] 文字輸入框 保留預設值
    [資源群組] 下拉式清單 選取清單中的 acr-sam-rg
    [容器名稱]** 區段 輸入 acisam[yourname]
    [區域] 下拉式清單 選取 [美國東部]
    [可用性區域]** 下拉式清單 選取 [1]**
    [映像來源] 區段 選取 [Azure Container Registry]**
    [登錄] 下拉式清單 選取 acrsam[yourname]
    [映像]** 下拉式清單 選取 docker-image-name
    [映像標籤]** 下拉式清單 選取 docker-image-tag
    [OS 類型] 區段 選取 [Linux]
  5. 在 [網路]** 索引標籤上,填寫下列資訊:

    設定 動作
    [DNS 名稱標籤]** 文字輸入框 輸入 dns-name
    [連接埠]** 文字輸入框 輸入埠號 (位於您的 DockerFile 中)
    [連接埠通訊協定]** 下拉式清單 選取清單中的 TCP
  6. 選取 [檢閱 + 建立]** 以檢閱您的設定,然後選取 [建立]**。

    注意:等待部署完成。 這可能需要數分鐘的時間。

  7. 在 [概觀]** 刀鋒視窗上,選取 [前往資源]** 按鈕以瀏覽至新建的容器執行個體帳戶的刀鋒視窗。

  8. 複製容器的公用 IP 位址並將其與埠號一起貼到您的網頁瀏覽器中,然後按 Enter 鍵。

    <public-IP-number>:<port-number><DNS-name>:<port-number>

  9. 您應該會看到 .NET Web 應用程式的網頁。

恭喜! 您已成功將 Linux 容器部署到您的容器執行個體。

工作 5:查詢現有容器的容器登錄

  1. 開啟 Azure 入口網站並瀏覽至您稍早所建立的資源群組。

  2. 選取您在工作 4 中所建立的 Container Registry。

  3. 選取 [存放庫]** 索引標籤 ,然後選取您要查詢現有容器的存放庫。

  4. 在 [標籤]** 區段中,您可以檢視所選存放庫的標籤清單。

  5. 選取標籤以檢視容器映像的詳細資料。 這會向您顯示容器映像的中繼資料,包括大小、建立日期,以及任何相關聯的層。

  6. 您也可以使用頁面頂端的搜尋列來搜尋特定的容器映像。 只需輸入關鍵字或標籤名稱,然後選取 [搜尋]** 按鈕。

  7. 如果您想要刪除容器映像,請選取標籤,然後選取 [刪除]** 按鈕。

    注意:這會永久刪除容器映像,且無法復原。

介紹完畢 您已成功學習如何在 Container Registry 中查詢現有的容器。

檢閱

透過完成本練習,您獲得了建立 Container Registry、建置 Dockerfile、建置容器映像、將 Linux 容器部署到 Azure 容器執行個體的實務經驗。

練習 2:建立和執行 Azure 容器應用程式服務

在本練習中,您將學習如何使用在練習一中所建立的容器映像來建立容器應用程式。

工作 1:在 Azure 中建立容器應用程式

  1. 在 Azure 入口網站上,選取頁面左上角的 [+ 建立資源]**

  2. 在搜尋列中,輸入容器應用程式,然後從結果中選取 [容器應用程式]**

  3. 選取 建立

  4. 在 [建立容器應用程式]** 頁面的 [基本]** 索引標籤上,填寫下列資訊 (讓其他資訊保留預設值),然後選取下一步:容器

    設定 動作
    [訂閱] 文字輸入框 保留預設值
    [資源群組] 下拉式清單 選取清單中的 acr-sam-rg
    [容器應用程式名稱]** 區段 輸入 acasam[yourname]
    [區域] 下拉式清單 選取 [美國東部]
    [容器應用程式環境]** 下拉式清單 保留預設值
  5. 在 [容器]** 索引標籤上,填寫下列資訊,然後選取 [輸入]** 索引標籤:

    設定 動作
    使用快速入門映像核取方塊 取消核取
    [名稱] 文字輸入框 輸入 [yourname]-container-app
    [映像來源]** 下拉式清單 選取 [Azure Container Registry]**
    [登錄] 下拉式清單 選取 acrsam[yourname]
    [映像]** 下拉式清單 選取 ****
    [映像標籤]** 下拉式清單 選取 [最新]
    [CPU 和記憶體]** 下拉式清單 選取清單中的 0.25 CPU 核心、0.5 Gi 記憶體
  6. 在 [輸入]** 索引標籤上,填寫下列資訊:

    設定 動作
    輸入核取方塊 選取 [啟用]**
    [輸入流量]** 方塊 選取 [接受來自任何地方的流量]**
    [輸入類型** 方塊 選取 [HTTP]
    [用戶端憑證模式]** 方塊 選取 [忽略]**
    [傳輸]** 下拉式清單 選取 [自動]**
    [目標連接埠]** 文字輸入框 輸入 5151
  7. 選取 [檢閱 + 建立]** 以檢閱您的設定,然後選取 [建立]**。

注意:等待部署完成。 這可能需要數分鐘的時間。

  1. 在 [概觀]** 刀鋒視窗上,選取 [前往資源]** 按鈕以瀏覽至新建立的容器應用程式帳戶的刀鋒視窗。

  2. 在 [容器應用程式]** 刀鋒視窗上,選取 [應用程式 URL]** 以查看 .NET Web 應用程式的網頁。

恭喜! 您已成功將 Linux 容器部署至您的應用程式。

檢閱

透過完成本練習,您獲得了建立容器應用程式、將 Linux 容器部署到 Azure 容器應用程式的實務經驗。