次の方法で共有


クイックスタート: Azure でカスタム コンテナーを実行する

このクイック スタートでは、Visual Studio から Windows イメージ内の ASP.NET アプリを Azure Container Registry にデプロイする方法について説明します。 アプリは、Azure App Service のカスタム コンテナーで実行します。

Azure App Service は、インターネット インフォメーション サービス (IIS) 上で実行される Windows 上の定義済みのアプリケーション スタックを提供します。 これらの構成済みアプリケーション スタックは、 オペレーティング システムをロックダウンし、低レベルのアクセスを防ぎます

カスタムの Windows コンテナーには、これらの制限はありません。 開発者は、カスタム コンテナーを使用して、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを提供できます。

前提条件

既に Visual Studio 2022 がインストール済みである場合:

  • [ヘルプ] を選択して Visual Studio に最新の更新プログラムをインストールします>更新プログラムのチェックを行います。
  • [ツール]、[>]\(ツールと機能\)Get Tools を選択して、Visual Studio でワークロードを追加します。

ASP.NET Web アプリを作成する

  1. Visual Studio を開き、[ 新しいプロジェクトの作成] を選択します。

  2. [新しいプロジェクトの作成] C# を選択し、[次へ] を選択します。

    [新しいプロジェクトの作成] ダイアログを示すスクリーンショット。

  3. [ 新しいプロジェクトの構成>プロジェクト名] で、アプリケーションに myfirstazurewebappという名前を付けます。 [フレームワーク] で 、[.NET Framework 4.8] を選択し、[作成] を選択します。

    [Web アプリ プロジェクトの構成] を示すスクリーンショット。

  4. 任意の種類の ASP.NET Web アプリを Azure にデプロイできます。 このクイック スタートでは、 MVC テンプレートを選択します。

  5. [ 認証] で [なし] を選択 します。 [ 詳細設定] で、[ コンテナーのサポート ] を選択し、[ HTTPS の構成] をオフにします。 作成を選択します。

    [ASP.NET Web アプリケーションの作成] ダイアログを示すスクリーンショット。

  6. Dockerfile が自動的に開かない場合は、 ソリューション エクスプローラーを選択して開きます。

  7. サポートされている親イメージが必要です。 FROM行を次のコードに置き換えて親イメージを変更し、ファイルを保存します。

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. Visual Studio メニューの [デバッグ>デバッグなしで開始] を選択して、Web アプリをローカルで実行します。

    ローカルで実行されているアプリを示すスクリーンショット。

Azure Container Registry に発行する

  1. ソリューション エクスプローラーでmyfirstazurewebapp プロジェクトを右クリックし、[発行] を選択します

  2. [ターゲット] で [Docker Container Registry] を選択し、[次へ] を選択します。

    [Docker Container Registry の選択] 画面を示すスクリーンショット。

  3. [特定のターゲット] で、[Azure Container Registry] を選択し、[次へ] を選択します。

    [プロジェクトから発行] の概要ウィンドウを示すスクリーンショット。

  4. [ 発行] で、適切なサブスクリプションを選択します。 新しいコンテナー レジストリを作成するには、[コンテナー レジストリで新規作成] を選択します。

    [新しい Azure Container Registry の作成] 画面を示すスクリーンショット。

  5. [ 新規作成] で、適切なサブスクリプションを選択します。 [ リソース グループ] で[ 新規 ] を選択し、名前に「 myResourceGroup 」と入力します。 [OK] をクリックします。 [ SKU] で [ 基本] を選択します。 [ レジストリの場所] で、レジストリの場所を選択し、[ 作成] を選択します。

    Azure Container Registry の詳細を示すスクリーンショット。

  6. [ 発行] の [ コンテナー レジストリ] で、作成したレジストリを選択し、[ 完了] を選択します。

    [既存の Azure Container Registry の選択] 画面を示すスクリーンショット。

    デプロイが完了するまで待ちます。 [発行] ウィンドウにリポジトリ名が表示されるようになりました。 後でリポジトリ名をコピーするには、[コピー] ボタンを選択します。

    リポジトリ名が強調表示されているスクリーンショット。

Windows カスタム コンテナーを作成する

  1. Azure portal にサインインします。

  2. Azure portal の左上隅にある [ リソースの作成 ] を選択します。

  3. [一般的なサービス] で、[Web アプリ] で [作成] を選択します。

  4. [Web アプリの作成] で、サブスクリプションとリソース グループを選択します。 必要な場合は、新しいリソース グループを作成できます。

  5. win-container-demoなどのアプリ名を指定します。 [発行] のために、[コンテナー]を選択します[オペレーティング システム] で、[Windows] を選択します

    コンテナー用の Web アプリを作成する方法を示すスクリーンショット。

  6. [次へ: データベース>次へ: コンテナー] を選択します。

  7. [イメージ ソース] で、[Docker Hub] を選択します。 [Image and tag]\(イメージとタグ\) には、「Azure Container Registry への発行」で以前にコピーしたリポジトリ名を入力します。

    コンテナー用に Web アプリを構成する方法を示すスクリーンショット。

    Azure Container Registry やその他のプライベート リポジトリなど、別の場所に Web アプリ用のカスタム イメージがある場合は、ここで構成できます。 [確認および作成]を選択します。

  8. すべての詳細を確認し、[ 作成] を選択します。

    コンテナー用の Web アプリを作成する方法を示すスクリーンショット。

    必要なリソースが Azure によって作成されるのを待ちます。

カスタム コンテナーを参照する

操作が完了すると、Azure portal に通知が表示されます。

デプロイが成功したことを示すスクリーンショット。

  1. [ リソースに移動] を選択します

  2. 概要で、[ 既定のドメイン] の横にあるリンクに従います。

新しいブラウザー ページが開きます。

Windows カスタム コンテナーの開始を示すスクリーンショット。

しばらく待ってから再試行してください。 既定の ASP.NET ホーム ページが表示されるまで、試し続けます。

実行中の Windows カスタム コンテナーを示すスクリーンショット。

コンテナーの起動ログを表示する

Windows コンテナーが読み込まれるまでにしばらく時間がかかる場合があります。 進行状況を確認するには、 \<app_name> をアプリの名前に置き換えて、次の URL に移動します。

https://<app_name>.scm.azurewebsites.net/api/logstream

次のようなログがストリーム配信されます。

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

ローカルで更新して再デプロイする

  1. Visual Studio で、 ソリューション エクスプローラーに移動します。 Views>Home>Index.cshtml を選択します。

  2. 上部の <div class="jumbotron"> HTML タグを検索し、要素全体を次のコードに置き換えます。

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Azure に再デプロイするには、ソリューション エクスプローラーmyfirstazurewebapp プロジェクトを右クリックし、[発行] を選択します。

  4. [発行] ウィンドウで [ 発行 ] を選択し、発行が完了するまで待ちます。

  5. App Service に Docker Hub から新しいイメージをプルするよう指示するには、アプリを再起動します。 Azure portal のアプリ ウィンドウで、[ 再起動>Yes] を選択します。

    [再起動] ボタンが強調表示されている App Service の概要を示すスクリーンショット。

  6. もう一度 カスタム コンテナーを参照します。 ページを更新すると、アプリは最初に [スタートアップ ] ページに戻ります。 更新されたページが表示されます。

    Azure で更新された Web アプリを示すスクリーンショット。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが不要になると予想される場合は、リソース グループを削除して削除できます。

  1. Azure portal のメニューまたはホーム ページで、 リソース グループ>myResourceGroup を選択します。

  2. myResourceGroup ペインで、一覧表示されているリソースが削除するリソースであることを確認します。

  3. [リソース グループの削除] を選択します。 確認するには、テキスト ボックスに 「myResourceGroup 」と入力し、[削除] を選択 します

このクイック スタートでは、 Azure Container Registry から Azure App Service にイメージをデプロイする方法について説明します。

App Service on Linux では、.NET、Java、Node.js、PHP などの言語をサポートする定義済みのアプリケーション スタックが Linux 上に用意されています。 また、カスタム Docker イメージを使用して、まだ Azure で定義されていないアプリケーション スタック上で Web アプリを実行することもできます。

サーバーレス環境でのコンテナー化されたアプリケーションの詳細については、「 コンテナー アプリ」を参照してください。

前提条件

コンテナー レジストリの作成

このクイックスタートでは、レジストリとして Azure Container Registry を使用します。 他のレジストリを使用できますが、手順が若干異なる場合があります。

「クイック スタート: Azure portal を使用してプライベート コンテナー レジストリを作成する」の手順に従って、コンテナー レジストリを作成します

重要

コンテナー レジストリを作成するときは、 必ず [管理者ユーザー ] オプションを [有効] に設定してください。 Azure portal のレジストリ ウィンドウの [アクセス キー ] セクションから設定することもできます。 App Service にアクセスするには、この設定が必要です。 マネージド ID については、「 Azure Container Registry からのデプロイ」を参照してください。

サインイン

  1. VS Code を開きます。

  2. アクティビティ バーAzure ロゴを選択し、[ACCOUNTS ] > [TENANTS] に移動します。 [ Azure にサインイン] を 選択し、指示に従います。

    VS Code で Azure にサインインする方法を示すスクリーンショット。

  3. 下部の ステータス バー で、Azure アカウントのメール アドレスが正しいことを確認します。 サブスクリプションが APP SERVICE エクスプローラーに表示されます。

  4. アクティビティ バーで、 Docker ロゴを選択します。 REGISTRIES エクスプローラーで、作成したコンテナー レジストリが表示されることを確認します。

    Azure が展開されている [レジストリ] の値を示すスクリーンショット。

前提条件を確認する

Docker がインストールされ、実行されていることを確認します。 Docker が実行されている場合は、次のコマンドによって Docker のバージョンが表示されます。

docker --version

イメージを作成およびビルドする

  1. VS Code で空のフォルダーを開き、 Dockerfileという名前のファイルを追加します。 ファイルに、目的の言語フレームワークに基づいてコンテンツを貼り付けます。

    このファイルでは、親イメージは App Service の組み込みの .NET コンテナーの 1 つです。

    FROM mcr.microsoft.com/appsvc/dotnetcore:lts
    
    ENV PORT 8080
    EXPOSE 8080
    
    ENV ASPNETCORE_URLS "http://*:${PORT}"
    
    ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]
    
  2. コマンド パレットを開き、「 Docker Images: Build Image」と入力します。 Enter キーを してコマンドを実行します。

  3. イメージ タグ ボックスで、目的のタグを <acr-name>.azurecr.io/<image-name>:<tag> の形式で指定します。ここで、<acr-name> は、作成したコンテナー レジストリの名前です。 Enter キーを押します

  4. イメージのビルドが完了したら、IMAGES エクスプローラーの上部にある [最新の情報に更新] を選択し、イメージが正常にビルドされたことを確認します。

    タグ付きのビルドされたイメージを示すスクリーンショット。

コンテナー レジストリにデプロイする

  1. アクティビティ バーで、 Docker アイコンを選択します。 IMAGES エクスプローラーで、ビルドしたイメージを見つけます。

  2. 画像を展開し、目的のタグを右クリックして、[プッシュ] を選択 します

  3. イメージ タグが <acr-name>.azurecr.io で始まるかどうかを確認し、Enter キーを します。

  4. VS Code がイメージをコンテナー レジストリにプッシュし終わったら、REGISTRIES エクスプローラーの上部にある [最新の情報に更新] を選択し、イメージが正常にプッシュされたことを確認します。

    Azure Container Registry にデプロイされたイメージを示すスクリーンショット。

App Service にデプロイする

  1. REGISTRIES エクスプローラーでイメージを展開し、タグを右クリックし、[Azure App Service へのイメージのデプロイ] を選択します。
  2. プロンプトに従って、サブスクリプション、グローバルに一意のアプリ名、リソース グループ、App Service プランを選択します。 価格レベルと近くのリージョンとして B1 Basic を選択します。

デプロイ後は、http://<app-name>.azurewebsites.net でアプリにアクセスできます。

リソース グループは、Azure 内のすべてのアプリケーションのリソースの名前付きコレクションです。 たとえば、リソース グループには、Web サイト、データベース、および Azure 関数への参照を含めることができます。

App Service プランでは、Web サイトのホストに使用する物理リソースを定義します。 このクイック スタートでは、Linux インフラストラクチャ上の Basic ホスティング プランを使用します。つまり、サイトは他の Web サイトと共に Linux マシンでホストされます。 Basic プランから開始する場合は、Azure portal を使用して、マシンがサイトのみを実行するようにスケールアップできます。 価格については、「 App Service の価格」を参照してください。

Web サイトの閲覧

[出力] パネルには、デプロイ操作の状態が表示されます。 操作が完了したら、ポップアップ通知で [ サイトを開く ] を選択して、ブラウザーでサイトを開きます。

App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけで済み、アプリの再起動時に更新されたイメージが取得されます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。

トラブルシューティングを行うには、「 問題が発生しました」に移動してください。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが不要になると予想される場合は、リソース グループを削除して削除できます。

  1. Azure portal のメニューまたはホーム ページで、 リソース グループ>myResourceGroup を選択します。

  2. myResourceGroup ペインで、一覧表示されているリソースが削除するリソースであることを確認します。

  3. [リソース グループの削除] を選択します。 確認するには、テキスト ボックスに 「myResourceGroup 」と入力し、[削除] を選択 します

その他の Azure 拡張機能は次のとおりです。

このクイック スタートでは、Azure Container Registry から Azure App Service にイメージをデプロイする方法について説明します。

Azure App Service on Linux では、.NET、Java、Node.js、PHP などの言語をサポートする定義済みのアプリケーション スタックが Linux 上に用意されています。 また、カスタム Docker イメージを使用して、まだ Azure で定義されていないアプリケーション スタック上で Web アプリを実行することもできます。

サーバーレス環境でのコンテナー化されたアプリケーションの詳細については、「 Azure Container Apps の概要」を参照してください。

前提条件

サンプル リポジトリをクローンする

次のコマンドを使用して 、.NET 6.0 サンプル アプリ を複製します。

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

Azure Container Registry にイメージをプッシュする

複製されたリポジトリのルート フォルダーに、 Dockerfile.linux ファイルが含まれていることを確認します。

  1. Azure CLI にサインインします。

    az login
    
  2. Azure Container Registry にサインインします。

    az acr login -n <your_registry_name>
    
  3. コンテナー イメージをビルドします。 この例では、イメージ名 dotnetcore-docs-hello-world-linuxを使用します。

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. Azure Container Registry にコンテナー イメージをプッシュします。

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
    

    注意

    Dockerfile は、内部でポート番号を 80 に設定します。 詳細については、「 カスタム コンテナーの構成」を参照してください。

Azure にデプロイする

  1. Azure portal にサインインします。

  2. 検索で アプリ サービス を入力します。 [ サービス] で、[ App Services] を選択します。

    Azure portal でアプリ サービスを検索する方法を示すスクリーンショット。

  3. [App Services] ウィンドウで、[作成>Web App] を選択します。

  4. [ 基本 ] タブの [ プロジェクトの詳細] で、適切なサブスクリプションを選択します。 新しいリソース グループを作成するには、[ 新規作成] を選択します。 名前として 「myResourceGroup 」と入力します。

    Azure サブスクリプションと Web アプリのリソース グループを選択するプロジェクトの詳細セクションを示すスクリーンショット。

  5. [ インスタンスの詳細] で次の手順を実行します

    • グローバルに一意の Web アプリ名を入力します。
    • [コンテナー] を選択します
    • オペレーティング システムの場合は、Linux を選択します
    • [ リージョン] で、アプリを提供する予定のリージョンを選択します。

    仮想マシンの名前を指定し、そのリージョン、イメージ、およびサイズを選択するインスタンスの詳細セクションを示すスクリーンショット。

  6. App Service プランで、[新規作成] を選択します。 名前として 「myAppServicePlan 」と入力します。 Free レベルに変更するには、サイズの 変更>Dev/Test>F1>Apply を選択します。

    プラン オプションを示すスクリーンショット。

  7. ウィンドウの上部にある [ コンテナー ] タブを選択します。

  8. [ コンテナー ] タブの [ イメージ ソース] で、[ Azure Container Registry] を選択します。 [Azure Container Registry のオプション] の下で、次の値を設定します。

    • レジストリ: コンテナー レジストリを選択します。
    • 画像: dotnetcore-docs-hello-world-linux を選択します。
    • タグ: [最新] を選択します。

    Azure Container Registry オプションを示すスクリーンショット。

  9. ウィンドウの下部にある [ 確認と作成 ] を選択します。

    ウィンドウの下部にあるボタンを示すスクリーンショット。

  10. 検証の実行後、[ 作成] を選択します。

  11. デプロイが完了したら、[ リソースに移動] を選択します。

    リソースに移動するボタンを示すスクリーンショット。

アプリを参照する

URL http://<app-name>.azurewebsites.net を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。

デプロイされたアプリケーションを示すスクリーンショット。

App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュします。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが不要になると予想される場合は、リソース グループを削除して削除できます。

  1. Azure portal のメニューまたはホーム ページで、 リソース グループ>myResourceGroup を選択します。

  2. myResourceGroup ペインで、一覧表示されているリソースが削除するリソースであることを確認します。

  3. [リソース グループの削除] を選択します。 確認するには、テキスト ボックスに 「myResourceGroup 」と入力し、[削除] を選択 します

このクイック スタートでは、Azure Container Registry から Azure App Service に Windows イメージに ASP.NET アプリをデプロイする方法について説明します。

Azure App Service では、インターネット インフォメーション サービス (IIS) 上で実行される、ASP.NET や Node.jsなど、Windows 上に定義済みのアプリケーション スタックが用意されています。 これらの構成済みアプリケーション スタックは、 オペレーティング システムをロックダウンし、低レベルのアクセスを防ぎます

カスタムの Windows コンテナーには、これらの制限はありません。 開発者は、カスタム コンテナーを使用して、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを提供できます。

前提条件

サンプル リポジトリをクローンする

次のコマンドを使用して 、.NET 6.0 サンプル アプリ を複製します。

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

Azure Container Registry にイメージをプッシュする

複製されたリポジトリのルート フォルダーにいることを確認します。 このリポジトリには、 Dockerfile.windows ファイルが含まれています。 この記事では、基本オペレーティング システムとして Windows Nano Server Long Term Servicing Channel 2022 を使用し、Windows ベースを明示的に呼び出します。

注意

このコンテナーは Windows コンテナーですが、パスではスラッシュを使用する必要があります。 詳細については、「 Dockerfile の書き込み」を参照してください。

  1. Azure CLI にサインインします。

    az login
    
  2. Azure Container Registry にサインインします。

    az acr login -n <your_registry_name>
    
  3. コンテナー イメージをビルドします。 この例では、イメージ名 dotnetcore-docs-hello-world-windowsを使用します。

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. Azure Container Registry にコンテナー イメージをプッシュします。

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
    

    注意

    Dockerfile は、ポート番号を内部的に 80 するように設定します。 詳細については、「 カスタム コンテナーの構成」を参照してください。

Azure にデプロイする

  1. Azure portal にサインインします。

  2. 検索ボックスに 「App Services 」と入力します。 [ サービス] で、[ App Services] を選択します。

    Azure portal でアプリ サービスを検索する方法を示すスクリーンショット。

  3. App Services で、[作成>Web App] を選択します。

  4. [ 基本 ] タブの [ プロジェクトの詳細] で、適切なサブスクリプションを選択します。 [新規作成] を選択します。 名前に「 myResourceGroup 」と入力します。

    Azure サブスクリプションと Web アプリのリソース グループを選択する [プロジェクトの詳細] セクションを示すスクリーンショット。

  5. [ インスタンスの詳細] で次の手順を実行します

    • グローバルに一意の Web アプリ名を入力します。
    • [コンテナー] を選択します
    • オペレーティング システムの場合は、Linux を選択します
    • [ リージョン] で、アプリを提供するリージョンを選択します。

    仮想マシンの名前を指定し、そのリージョン、イメージ、サイズを選択する [インスタンスの詳細] セクションを示すスクリーンショット。

  6. App Service プランで、[新規作成] を選択します。 名前に「 myAppServicePlan 」と入力します。 レベルを変更するには、[ 価格プランの探索] を選択し、プランを選択して、ウィンドウの下部にある [選択 ] を選択します。

    App Service プランのオプションを示すスクリーンショット。

  7. ウィンドウの上部にある [ コンテナー ] タブを選択します。

  8. [ コンテナー ] タブの [ イメージ ソース] で、[ Azure Container Registry] を選択します。 [Azure Container Registry のオプション] の下で、次の値を設定します。

    • レジストリ: コンテナー レジストリを選択します。
    • 画像: dotnetcore-docs-hello-world-linux を選択します。
    • タグ: [最新] を選択します。

    Azure Container Registry オプションを示すスクリーンショット。

  9. ウィンドウの下部にある [ 確認と作成 ] を選択します。

    ウィンドウの下部にある [確認と作成] ボタンを示すスクリーンショット。

  10. 検証の実行後、[ 作成] を選択します。

  11. デプロイが完了したら、[ リソースに移動] を選択します。

    リソースに移動する方法を示すスクリーンショット。

アプリに移動する

Web ブラウザーの URL http://<app-name>.azurewebsites.netで、デプロイされたアプリケーションに移動します。

Windows App Service を示すスクリーンショット。

ホスト オペレーティング システムがフッターに表示され、アプリが Windows コンテナーで実行されていることを確認します。

App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュします。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 今後これらのリソースが不要になると予想される場合は、リソース グループを削除して削除できます。

  1. Azure portal のメニューまたはホーム ページで、 リソース グループ>myResourceGroup を選択します。

  2. myResourceGroup ペインで、一覧表示されているリソースが削除するリソースであることを確認します。

  3. [リソース グループの削除] を選択します。 確認するには、テキスト ボックスに 「myResourceGroup 」と入力し、[削除] を選択 します

このクイック スタートでは、 Microsoft Artifact Registry から Azure App Service に Windows イメージに ASP.NET アプリをデプロイする方法について説明します。

Azure App Service は、インターネット インフォメーション サービス (IIS) 上で実行される Windows 上の定義済みのアプリケーション スタックを提供します。 構成済みのアプリケーション スタックによって オペレーティング システムがロックダウンされ、低レベルのアクセスが防止されます。

カスタムの Windows コンテナーには、これらの制限はありません。 開発者は、カスタム コンテナーを使用して、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを提供できます。

前提条件

Azure に接続する

Connect-AzAccount コマンドを使用して、プロンプトに従って Azure アカウントにサインインします。

Connect-AzAccount

リソース グループを作成する

New-AzResourceGroup コマンドでリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

次の例では、myResourceGroup の場所に eastus という名前のリソース グループを作成します。 App Service でサポートされているすべての場所を表示するには、 Get-AzLocation コマンドを実行します。

New-AzResourceGroup -Name myResourceGroup -Location eastus

このコマンドは Login Succeeded を返します。

App Service プランを作成する

New-AzAppServicePlan コマンドを使用して、新しい App Service プランを作成します。

次の例では、myAppServicePlan 価格レベル () の -Tier PremiumV3 という名前の App Service プランを作成します。 この -HyperV パラメーターは、Windows コンテナーを指定します。

New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV

Web アプリを作成する

New-AzWebApp コマンドを使用して新しいアプリを作成します。

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Name パラメーターは、Web アプリ名を指定します。
  • AppServicePlan パラメーターは、App Service プランの名前を指定します。
  • Location パラメーターは場所を指定します。
  • ResourceGroupName パラメーターは、リソース グループの名前を指定します。
  • ContainerImageName パラメーターは、コンテナー イメージ名と省略可能なタグを指定します。

コマンドが完了するまでに数分かかる場合があります。

アプリを参照する

URL http://<app-name>.azurewebsites.net を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。

Windows App Service を示すスクリーンショット。

App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュします。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。

リソースをクリーンアップする

Remove-AzResourceGroup コマンドを使用してリソース グループを削除します。

Remove-AzResourceGroup myResourceGroup

このクイック スタートでは、 Microsoft Artifact Registry から Azure App Service に Windows イメージに ASP.NET アプリをデプロイする方法について説明します。

Azure App Service は、インターネット インフォメーション サービス (IIS) 上で実行される Windows 上の定義済みのアプリケーション スタックを提供します。 これらの構成済みアプリケーション スタックは、 オペレーティング システムをロックダウンし、低レベルのアクセスを防ぎます

カスタムの Windows コンテナーには、これらの制限はありません。 開発者は、カスタム コンテナーを使用して、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを提供できます。

前提条件

Azure に接続する

Azure アカウントにサインインします。 az login コマンドを使用し、プロンプトに従います。

az login

リソース グループを作成する

az group create コマンドを使用してリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

次の例では、myResourceGroup の場所に eastus という名前のリソース グループを作成します。 App Service でサポートされているすべての場所を表示するには、 az appservice list-locations コマンドを実行します。

az group create --name myResourceGroup --___location eastus

App Service プランを作成する

az appservice plan create コマンドを使用して、リソース グループに App Service プランを作成します。

次の例では、myAppServicePlan 価格レベル () の --sku P1V3 という名前の App Service プランを作成します。

az appservice plan create --resource-group myResourceGroup --___location eastus --name myAppServicePlan --hyper-v --sku p1v3

注意

"このコマンドの動作は、次の拡張機能によって変更されました: appservice-kube" というエラーが発生した場合は、 appservice-kube 拡張機能を削除します。

Web アプリを作成する

コマンドを使用して、myAppServicePlan App Service プランでカスタム コンテナー az webapp createを作成します。 myContainerAppを一意のアプリ名に置き換えてください (有効な文字はa-z0-9-)。

az webapp create --name myContainerApp --plan myAppServicePlan --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Name パラメーターは、Web アプリ名を指定します。
  • AppServicePlan パラメーターは、App Service プランの名前を指定します。
  • Location パラメーターは場所を指定します。
  • ResourceGroupName パラメーターは、リソース グループの名前を指定します。
  • deployment-container-image-name パラメーターは、コンテナー イメージ名と省略可能なタグを指定します。

アプリを参照する

URL http://<app-name>.azurewebsites.net を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。

Windows App Service を示すスクリーンショット。

App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュします。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。

リソースをクリーンアップする

az group delete コマンドを使用してリソース グループを削除します。

az group delete --no-wait --name <resource_group>