Docker または Podman コンテナーを使用して開発するための Visual Studio に含まれるツールにより、コンテナー化されたアプリケーションのビルド、デバッグ、デプロイが大幅に簡略化されます。 1 つのプロジェクトのコンテナーを操作することも、 Docker Compose でコンテナー オーケストレーションを使用することもできます。
Docker コンテナーを使用して開発するための Visual Studio に含まれるツールにより、コンテナー化されたアプリケーションのビルド、デバッグ、デプロイが大幅に簡略化されます。 1 つのプロジェクトのコンテナーを操作することも、 Docker Compose または Service Fabric でコンテナー オーケストレーションを使用してコンテナー内の複数のサービスを操作することもできます。
[前提条件]
- Docker Desktop
- ASP.NET および Web 開発、Azure 開発ワークロード、.NET Core クロスプラットフォーム開発ワークロードがインストールされた Visual Studio 2019 以降。
- .NET Core を 使用した開発用 .NET Core 開発ツール。
- Azure Container Registry に発行するには、Azure サブスクリプションです。 無料試用版にサインアップします。
Visual Studio での Docker のサポート
Docker のサポートは、ASP.NET プロジェクト、ASP.NET Core プロジェクト、.NET Core および .NET Framework コンソール プロジェクトで使用できます。
Visual Studio での Docker のサポートは、お客様のニーズに応じて多数のリリースで変更されました。 プロジェクトに追加できる Docker サポートには 2 つのレベルがあり、サポートされるオプションはプロジェクトの種類と Visual Studio のバージョンによって異なります。 一部のサポートされているプロジェクトの種類では、オーケストレーションを使用せずに単一のプロジェクトのコンテナーが必要な場合は、Docker サポートを追加することでこれを行うことができます。 次のレベルは、選択した特定のオーケストレーターに適切なサポート ファイルを追加するコンテナー オーケストレーションのサポートです。
Visual Studio 2019 では、コンテナー オーケストレーション サービスとして Docker Compose、Kubernetes、Service Fabric を使用できます。
Visual Studio 2019 バージョン 16.4 以降では、[ コンテナー ] ウィンドウを使用できます。これにより、実行中のコンテナーの表示、使用可能なイメージの参照、環境変数、ログ、ポート マッピングの表示、ファイルシステムの検査、デバッガーのアタッチ、コンテナー環境内のターミナル ウィンドウの開きを行うことができます。 「 コンテナーの使用」ウィンドウを参照してください。
[前提条件]
- Docker Desktop または Podman Desktop
- Visual Studio、または Podman サポートの場合は、 Visual Studio (Insider)、 ASP.NET と Web 開発、 Azure 開発 ワークロード、. NET デスクトップ開発 ワークロードがインストールされています。
- Azure Container Registry に発行するには、Azure サブスクリプションです。 無料試用版にサインアップします。
Visual Studio でのコンテナーのサポート
コンテナーのサポートは、ASP.NET Core プロジェクトと .NET Core (および .NET 5 以降) コンソール プロジェクトで使用できます。 .NET Framework プロジェクトは、Visual Studio の現在のバージョンではサポートされていません。
オーケストレーションを使用せずに単一のプロジェクトのコンテナーが必要な場合は、コンテナーのサポートを追加することでこれを行うことができます。 コンテナー プラットフォームとして Docker または Podman を選択し、プロジェクトを変更せずに簡単に切り替えることができます。 次のレベルは 、Docker Compose の適切なサポート ファイルを追加する Container Compose サポートです。 (Podman Compose はサポートされていません)。
.NET 7 以降のプロジェクトにコンテナー サポートを追加する場合、コンテナーのサポートを追加するために選択できるコンテナー ビルドの種類が 2 つあります。 Dockerfile を追加してコンテナー イメージをビルドする方法を指定することも、.NET SDK によって提供される組み込みのコンテナー サポートを使用することもできます。
[コンテナー] ウィンドウでは、実行中のコンテナーの表示、使用可能なイメージの参照、環境変数、ログ、ポート マッピングの表示、ファイルシステムの検査、デバッガーのアタッチ、コンテナー環境内のターミナル ウィンドウの開きなどを行うことができます。 「 コンテナーの使用」ウィンドウを参照してください。
[前提条件]
- Docker Desktop
- Visual Studio。 Podman サポートを使用するには、Visual Studio (Insiders) に、ASP.NET と Web 開発、Azure 開発ワークロード、または .NET デスクトップ開発ワークロードがインストールされている必要があります。
- Azure Container Registry に発行するには、Azure サブスクリプションです。 無料試用版にサインアップします。
Visual Studio での Docker のサポート
Docker のサポートは、ASP.NET プロジェクト、ASP.NET Core プロジェクト、.NET Core および .NET Framework コンソール プロジェクトで使用できます。
Visual Studio での Docker のサポートは、お客様のニーズに応じて多数のリリースで変更されました。 プロジェクトに Docker サポートを追加するオプションがいくつかあります。サポートされるオプションは、プロジェクトの種類と Visual Studio のバージョンによって異なります。 一部のサポートされているプロジェクトの種類では、オーケストレーションを使用せずに単一のプロジェクトのコンテナーが必要な場合は、Docker サポートを追加することでこれを行うことができます。 次のレベルは、選択した特定のオーケストレーターに適切なサポート ファイルを追加するコンテナー オーケストレーションのサポートです。
Visual Studio 2022 バージョン 17.9 以降では、.NET 7 以降のプロジェクトに Docker サポートを追加するときに、Docker サポートを追加するために選択できるコンテナー ビルドの種類が 2 つあります。 Dockerfile を追加してコンテナー イメージをビルドする方法を指定することも、.NET SDK によって提供される組み込みのコンテナー サポートを使用することもできます。
また、Visual Studio 2022 以降では、コンテナー オーケストレーションを選択するときに、コンテナー オーケストレーション サービスとして Docker Compose または Service Fabric を使用できます。
Visual Studio 2022 では、[ コンテナー ] ウィンドウを使用できます。これにより、実行中のコンテナーの表示、使用可能なイメージの参照、環境変数、ログ、ポート マッピングの表示、ファイルシステムの検査、デバッガーのアタッチ、コンテナー環境内のターミナル ウィンドウの開きなどを行うことができます。 「 コンテナーの使用」ウィンドウを参照してください。
コンテナーをサポートするプロジェクトを作成するか、既存のプロジェクトにコンテナーサポートを追加するには、「 コンテナーのサポートを追加する」を参照してください。
Docker をサポートするプロジェクトを作成するか、既存のプロジェクトに Docker サポートを追加するには、「 コンテナーのサポートを追加する」を参照してください。
注
Docker のライセンス要件は、Docker Desktop のバージョンによって異なる場合があります。 状況で開発に使用する Docker Desktop のバージョンを使用するための現在のライセンス要件については、Docker のドキュメント を参照してください。
Visual Studio での Podman のサポート
Visual Studio では、デーモンレス コンテナー エンジンを提供する一般的なコンテナー管理ツールである Podman コンテナーがサポートされています。 コンテナーは、Visual Studio から直接 Podman CLI を使用して実行および管理できます。 Podman を使用して、Docker と同じ方法で単一コンテナー アプリを実行できます。
Podman コンテナーを使用するには、CLI から podman を起動し、Visual Studio でソリューションを開きます。 既定では、Container Tools は Podman または Docker が実行されているかどうかを自動的に検出し、アプリの起動時に現在アクティブなコンテナー ランタイムを使用します。 コンテナー ランタイムを手動で構成するには、[ Tools > Options > Container Tools > Container Runtime に移動し、 Podman または Docker を選択します。 既定の設定は Auto です。これは、Visual Studio が現在アクティブなコンテナー ランタイムを検出することを意味します。 [ツール] > [オプション] ウィンドウを閉じて、設定の変更をコミットします。
[コンテナー] ウィンドウ
[ コンテナー] ウィンドウでは、コンピューター上のコンテナーとイメージを表示し、その状態を確認できます。 ファイルシステム、マウントされたボリューム、環境変数、使用されているポートを表示し、ログ ファイルを調べることができます。
クイック起動 (
コンテナーを選択し、タブを使用して使用可能な情報を表示します。 チェックアウトするには、Docker 対応アプリを実行し、[ ファイル ] タブを開き、 アプリ フォルダーを展開してコンテナーにデプロイされたアプリを表示します。
詳細については、「 コンテナーの使用」ウィンドウを参照してください。
Docker Compose のサポート
Docker Compose を使用してマルチコンテナー ソリューションを作成する場合は、コンテナー オーケストレーターのサポートをプロジェクトに追加します。 これにより、コンテナーのグループ (ソリューション全体またはプロジェクトのグループ) を、同じdocker-compose.yml ファイルで定義されている場合に同時に実行 および デバッグできます。
Docker Compose を使用してコンテナー オーケストレーター のサポートを追加するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[> Container Orchestrator サポートの追加] を選択します。 次に、 Docker Compose を選択してコンテナーを管理します。
プロジェクトにコンテナー オーケストレーターのサポートを追加すると、次に示すように、Dockerfile がプロジェクトに追加され (まだ存在しない場合)、ソリューション エクスプローラーでソリューションに docker-compose フォルダーが追加されます。
docker-compose.ymlが既に存在する場合は、Visual Studio によって必要な構成コード行が追加されます。
Docker Compose を使用して制御する他のプロジェクトでプロセスを繰り返します。
多数のサービスを使用する場合は、デバッグ セッションで開始するサービスのサブセットを選択することで、時間とコンピューティング リソースを節約できます。 「 Compose サービスのサブセットを開始する」を参照してください。
注
Visual Studio ツールでは、リモート Docker ホストはサポートされていません。
Service Fabric のサポート
Visual Studio の Service Fabric ツールを使用すると、Azure Service Fabric の開発とデバッグ、ローカルでの実行とデバッグ、Azure へのデプロイを行うことができます。
Visual Studio 2019 以降では、Windows コンテナーと Service Fabric オーケストレーションを使用したコンテナー化マイクロサービスの開発がサポートされています。
詳細なチュートリアルについては、「 チュートリアル: Windows コンテナー内の .NET アプリケーションを Azure Service Fabric にデプロイする」を参照してください。
Azure Service Fabric の詳細については、「 Service Fabric」を参照してください。
継続的デリバリーと継続的インテグレーション (CI/CD)
Visual Studio は Azure Pipelines と簡単に統合され、サービス コードと構成に対する変更の自動化および継続的インテグレーションと配信を実現します。 開始するには、最初の パイプラインの作成に関するページを参照してください。
Service Fabric については、「 チュートリアル: Azure DevOps Projects を使用して ASP.NET Core アプリを Azure Service Fabric にデプロイする」を参照してください。
次のステップ
コンテナーを操作するための Visual Studio ツールのサービス実装と使用の詳細については、次の記事を参照してください。