ラボ 14:コンテナー化されたソリューションを実装する

Microsoft Azure ユーザー インターフェイス

Microsoft クラウド ツールの動的な性質を考慮すると、このトレーニング コンテンツの開発の後に発生する Azure UI の変更に気付くかもしれません。 その結果、ラボの指示とラボの手順が正しく整合しなくなる可能性があります。

Microsoft は、コミュニティから必要な変更の通知があったときに、このトレーニング コースを更新します。 ただし、クラウドの更新は頻繁に発生するため、このトレーニング コンテンツの更新の前に UI の変更に気付く可能性があります。 これが発生した場合は、その変更に適応し、ラボでは必要に応じてそれらに対応してください。

Instructions

開始する前に

ラボ環境にサインインする

次の資格情報を使用して Windows 11 仮想マシン (VM) にサインインします。

  • ユーザー名: Admin
  • パスワード: Pa55w.rd

: 仮想ラボ環境に接続するための手順は、インストラクターから提供されます。

インストールされているアプリケーションを確認する

Windows 11 デスクトップでタスク バーを探します。 タスク バーには、このラボで使用するアプリケーションのアイコンが含まれています。

  • Microsoft Edge

課題シナリオ

このラボでは、.NET アプリケーションと Docker ファイルを使用してコンテナーを作成し、コンテナー レジストリにデプロイする方法を確認します。

アーキテクチャの図

Azure Content Delivery Network を使用して web アプリケーションを強化するユーザーを表すアーキテクチャの図

演習 1:Azure でコンテナーを作成して実行する

タスク 1:コンテナー レジストリを作成する

  1. タスク バーで、Microsoft Edge アイコンを選択します。

  2. ブラウザー ウィンドウで、Azure portal (https://portal.azure.com) に移動してから、このラボで使用するアカウントでサインインします。

  3. ページの左上隅にある [+ リソースの作成] を選択します。

  4. 検索バーに「コンテナー レジストリ」と入力し、結果から [コンテナー レジストリ] を選択します。

  5. [作成] を選択します

  6. [コンテナー レジストリの作成] ページの [基本] タブで、次の情報を入力します (他のものは既定値のままにします)。

    設定 アクション
    [サブスクリプション] テキスト ボックス 既定値のままにします
    [リソース グループ] セクション [新規作成] を選択し、「acr-sam-rg」と入力して、[OK] を選択します
    [レジストリ名] セクション acrsam[yourname]」と入力します
    [場所] ドロップダウン リスト [米国東部] を選択します。
    [価格プラン] ドロップダウン リスト [Basic] を選択します
  7. [確認および作成] を選んで自分の設定を確認してから、[作成] を選択します。

    : デプロイが完了するまで待ちます。 これには数分かかることがあります。

  8. [概要] ブレードで、[リソースに移動] ボタンを選択して、新しく作成されたコンテナー レジストリ アカウントのブレードに移動します。

  9.  [コンテナー レジストリ] ブレードの  [設定] セクションで、[アクセス キー] を選択します。

  10.  [アクセス キー] ブレードで、[管理者ユーザー] を有効にします。

  11.  [ユーザー名] ボックスの値をクリップボードにコピーします。

  12. メモ帳を開き、コピーした値をメモ帳に貼り付けます。 この値は、このラボの後半で使用します。

お疲れさまでした。 Azure にコンテナー レジストリが正常に作成されました。

タスク 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. <web-app-name> は必ず、.NET 8 Web アプリケーション プロジェクトの名前に置き換えてください。

  5. Dockerfile を保存します。

お疲れさまでした。 Docker ファイルが正常に作成されました。

タスク 3:Docker ファイルを使用して Azure 上に Linux コンテナーを作成する

ローカル コンピューターに Docker CLI がインストールされていることを確認します。 ない場合は、Docker Web サイトからインストールします。

  1. タスク バーで、[ターミナル] アイコンを選択します。

  2. 開いているコマンド プロンプトで、次のコマンドを入力してから Enter キーを押して、Azure コマンド ライン インターフェイス (CLI) にサインインします。

     az login
    
  3. [Microsoft Edge] ブラウザー ウィンドウで、Microsoft アカウントの電子メール アドレスとパスワードを入力し、 [サインイン] を選択します。

  4. 現在開いているターミナル [コマンド プロンプト] ウィンドウに戻ります。 サインイン プロセスが完了するまで待ちます。

  5. 次のコマンドを入力してから Enter キーを押して、現在のディレクトリを、ラボ ファイルが含まれている Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14 ディレクトリに変更します。

     cd 'F:\Allfiles\Labs\14\Starter\webapp-lab14\'
    
  6. 次のコマンドを実行して、ソース コードをコンテナー レジストリにアップロードし、コンテナー イメージをコンテナー レジストリ タスクとしてビルドし、 をコンテナー レジストリの名前に置き換え、 をイメージの新しい名前に置き換えます。

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

    : ビルド タスクが完了するまで待ってから、このラボを進めてください。

  7. ターミナル ウィンドウを閉じます。

  8. Azure portal を開き、コンテナー レジストリに移動します。

  9.  [コンテナー レジストリ] ブレードの  [サービス] セクションで、[リポジトリ] を選択します。

  10. Docker イメージがリポジトリに一覧表示されていることを確認します。

お疲れさまでした。 Docker ファイルを使用して、Azure 上に Linux コンテナーが正常に作成されました。

タスク 4:Linux コンテナー イメージを Azure コンテナー インスタンスにデプロイする

  1. Azure portal で、ページの左上隅にある [+ リソースの作成] を選択します。

  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」と入力します
    [ポート] テキスト ボックス port-number」 (DockerFile にあります) と入力します
    [ポート プロトコル] ドロップダウン リスト 一覧から [TCP] を選択します
  6. [確認および作成] を選んで自分の設定を確認してから、[作成] を選択します。

    : デプロイが完了するまで待ちます。 これには数分かかることがあります。

  7. [概要] ブレードで、[リソースに移動] ボタンを選択して、新しく作成されたコンテナー インスタンス アカウントのブレードに移動します。

  8. コンテナーのパブリック IP アドレスをコピーし、ポート番号を含む Web ブラウザーに貼り付け、Enther キーを押します。

    <public-IP-number>:<port-number> または <DNS-name>:<port-number>

  9. .NET Web アプリケーションの Web ページが表示されるはずです。

お疲れさまでした。 コンテナー インスタンスに Linux コンテナーが正常にデプロイされました。

タスク 5:コンテナー レジストリに対して既存のコンテナーのクエリを実行する

  1. Azure portal で、前に作成したリソース グループに移動します。

  2. タスク 4 で作成したコンテナー レジストリを選択します。

  3. [リポジトリ] タブを選択し、既存のコンテナーのクエリを実行するリポジトリを選びます。

  4. [タグ] セクションで、選択したリポジトリのタグの一覧を表示できます。

  5. タグを選択して、コンテナー イメージの詳細を表示します。 これにより、サイズ、作成日、関連付けられているレイヤーなど、コンテナー イメージのメタデータが表示されます。

  6. ページの上部にある検索バーを使用して、特定のコンテナー イメージを検索することもできます。 単にキーワードまたはタグ名を入力し、[検索] ボタンを選択します。

  7. コンテナー イメージを削除する場合は、タグを選んでから、[削除] ボタンを選択します。

    :これにより、コンテナー イメージが完全に削除され、復旧できません。

これで完了です。 コンテナー レジストリに対して既存のコンテナーのクエリを実行する方法を学習しました。

確認

この演習を完了すると、コンテナー レジストリの作成、Dockerfile の作成、コンテナー イメージのビルド、Linux コンテナーの Azure コンテナー インスタンスへのデプロイに関する実践的な経験が得られます。

演習 2:Azure Container Apps サービスを作成して実行する

この演習では、演習 1 で作成したコンテナー イメージを使用してコンテナー アプリを作成する方法について学習します。

タスク 1:Azure でコンテナー アプリを作成する

  1. Azure portal で、ページの左上隅にある [+ リソースの作成] を選択します。

  2. 検索バーに「コンテナー アプリ」と入力し、結果から [コンテナー アプリ] を選択します。

  3. [作成] を選択します

  4. [コンテナー アプリの作成] ページの [基本] タブで、次の情報を入力し (他のものは既定値のままにします)、[次へ: コンテナー] を選択します。

    設定 アクション
    [サブスクリプション] テキスト ボックス 既定値のままにします
    [リソース グループ] ドロップダウン リスト 一覧から [acr-sam-rg] を選択します
    [コンテナー アプリ名] セクション acasam[yourname]」と入力します
    [リージョン] ドロップダウン リスト [米国東部] を選択します。
    [Container Apps 環境] ドロップダウン リスト 既定値のままにします
  5. [コンテナー] タブで次の情報を入力し、[イングレス] タブを選びます。

    設定 アクション
    [クイックスタート イメージを使用する] チェックボックス オフ
    [名前] テキスト ボックス [あなたの名前]-container-app」を入力します。
    [イメージのソース] ドロップダウン リスト [Azure Container Registry] を選択します
    [レジストリ] ドロップダウン リスト [acrsam[yourname]] を選択します
    [イメージ] ドロップダウン リスト **[]** を選択します
    [イメージ タグ] ドロップダウン リスト [最新] を選択します
    [CPU とメモリ] ドロップダウン リスト 一覧で [0.25 CPU コア、0.5 Gi メモリ] を選択します
  6. [イングレス] タブで、次の情報を入力します。

    設定 アクション
    [イングレス] チェックボックス [有効にする] を選択します
    [イングレス トラフィック] ボックス **[どこからでもトラフィックを受け入れる] **を選びます
    [イングレス タイプ] ボックス [HTTP] を選択します
    [クライアント証明書モード] ボックス [無視] を選択します
    [トランスポート] ドロップダウン リスト [自動] を選択します
    [ターゲット ポート] テキスト ボックス 5151」と入力します
  7. [確認および作成] を選んで自分の設定を確認してから、[作成] を選択します。

: デプロイが完了するまで待ちます。 これには数分かかることがあります。

  1. [概要] ブレードで、[リソースに移動] ボタンを選択して、新しく作成されたコンテナー アプリ アカウントのブレードに移動します。

  2. [コンテナー アプリ] ブレードで、[アプリケーション URL] を選択して、.NET Web アプリケーションの Web ページを表示します。

お疲れさまでした。 コンテナー アプリに Linux コンテナーが正常にデプロイされました。

確認

この演習を完了すると、コンテナー アプリの作成、Linux コンテナーの Azure コンテナー アプリへのデプロイに関する実践的な経験が得られます。