Visual Studio のコンテナー ツールContainer Tools in Visual Studio

Visual Studio に含まれるコンテナーを使った開発用のツールは、使いやすく、コンテナー化されたアプリケーションのビルド、デバッグ、配置を大幅に簡略化できます。The tools included in Visual Studio for developing with containers are easy to use, and greatly simplify building, debugging, and deployment for containerized applications. 1 つのプロジェクトに対して 1 つのコンテナーを使用したり、Docker Compose、Service Fabric、または Kubernetes と共にコンテナーのオーケストレーションを使って、コンテナー内で複数のサービスを使用したりできます。You can work with a container for a single project, or use container orchestration with Docker Compose, Service Fabric, or Kubernetes to work with multiple services in containers.

必須コンポーネントPrerequisites

Visual Studio での Docker サポートDocker support in Visual Studio

Docker サポートは、ASP.NET プロジェクト、ASP.NET Core プロジェクト、.NET Core と .NET Framework のコンソール プロジェクトで利用できます。Docker support is available for ASP.NET projects, ASP.NET Core projects, and .NET Core and .NET Framework console projects.

Visual Studio での Docker のサポートは、お客様のニーズに応じて、多数のリリースを経て変更されてきました。The support for Docker in Visual Studio has changed over a number of releases in response to customer needs. プロジェクトに追加できる Docker サポートには 2 つのレベルがあり、サポートされるオプションはプロジェクトの種類と Visual Studio のバージョンによって異なります。There are two levels of Docker support you can add to a project, and the supported options vary by the type of project and the version of Visual Studio. サポートされている一部のプロジェクトの種類では、オーケストレーションなしで 1 つのプロジェクト用に 1 つのコンテナーを使いたいだけの場合は、Docker サポートを追加することでこれを実行できます。With some supported project types, if you just want a container for a single project, without using orchestration, you can do that by adding Docker support. 次のレベルは、コンテナー オーケストレーションのサポートです。これは、選択した特定のオーケストレーター用の適切なサポート ファイルを追加します。The next level is container orchestration support, which adds appropriate support files for the particular orchestrator you choose.

Visual Studio 2017 では、コンテナー オーケストレーション サービスとして Docker Compose と Service Fabric を使用できます。With Visual Studio 2017, you can use Docker Compose and Service Fabric as container orchestration services. Visual Studio Tools for Kubernetes をインストールする場合は、Kubernetes も使用できます。You can also use Kubernetes if you install the Visual Studio Tools for Kubernetes.

注意

15.8 より前のバージョンの Visual Studio 2017 を使うか、.NET Framework プロジェクト テンプレート (.NET Core ではなく) を使う場合は、Docker サポートを追加するときに、Docker Compose を使うオーケストレーションのサポートが自動的に追加されます。If you are using a version of Visual Studio 2017 prior to 15.8, or you are using the .NET Framework project template (not .NET Core), when you add Docker support, orchestration support using Docker Compose is added automatically. Visual Studio 2017 バージョン 15.0 から 15.7 と、.NET Framework プロジェクトに対しては、Docker Compose を使ったコンテナー オーケストレーションのサポートが自動的に追加されます。Container orchestration support, via Docker Compose, is added automatically in Visual Studio 2017 versions 15.0 to 15.7 and for .NET Framework projects.

必須コンポーネントPrerequisites

Visual Studio での Docker サポートDocker support in Visual Studio

Docker サポートは、ASP.NET プロジェクト、ASP.NET Core プロジェクト、.NET Core と .NET Framework のコンソール プロジェクトで利用できます。Docker support is available for ASP.NET projects, ASP.NET Core projects, and .NET Core and .NET Framework console projects.

Visual Studio での Docker のサポートは、お客様のニーズに応じて、多数のリリースを経て変更されてきました。The support for Docker in Visual Studio has changed over a number of releases in response to customer needs. プロジェクトに追加できる Docker サポートには 2 つのレベルがあり、サポートされるオプションはプロジェクトの種類と Visual Studio のバージョンによって異なります。There are two levels of Docker support you can add to a project, and the supported options vary by the type of project and the version of Visual Studio. サポートされている一部のプロジェクトの種類では、オーケストレーションなしで 1 つのプロジェクト用に 1 つのコンテナーを使いたいだけの場合は、Docker サポートを追加することでこれを実行できます。With some supported project types, if you just want a container for a single project, without using orchestration, you can do that by adding Docker support. 次のレベルは、コンテナー オーケストレーションのサポートです。これは、選択した特定のオーケストレーター用の適切なサポート ファイルを追加します。The next level is container orchestration support, which adds appropriate support files for the particular orchestrator you choose.

Visual Studio 2019 では、コンテナー オーケストレーション サービスとして Docker Compose、Kubernetes、Service Fabric を使用できます。With Visual Studio 2019, you can use Docker Compose, Kubernetes, and Service Fabric as container orchestration services.

注意

完全な .NET Framework コンソール プロジェクト テンプレートを使用する場合は、プロジェクトの作成後の [コンテナー オーケストレーター サポートの追加] オプションが、Service Fabric または Docker Compose を使用するオプションとともにサポートされています。If you are using the full .NET Framework console project template, the supported option is Add Container Orchestrator support after project creation, with options to use Service Fabric or Docker Compose. プロジェクトの作成時のサポートの追加と、オーケストレーションなしで 1 つのプロジェクトに Docker サポートを追加する オプションは使用できません。Adding support at project creation and Add Docker support for a single project without orchestration are not available options.

Visual Studio 2019 バージョン 16.4 以降では、[コンテナー] ウィンドウを使用できます。このウィンドウでは、実行中のコンテナーの表示、使用可能なイメージの参照、環境変数、ログ、およびポート マッピングの表示、ファイル システムの検査、デバッガーのアタッチを行ったり、コンテナー環境内でターミナル ウィンドウを開いたりすることができます。In Visual Studio 2019 version 16.4 and later, the Containers window is available, which lets you view running containers, browse available images, view environment variables, logs, and port mappings, inspect the filesystem, attach a debugger, or open a terminal window inside the container environment. Visual Studio でのコンテナーおよびイメージの表示および診断に関するページを参照してください。See View and diagnose containers and images in Visual Studio.

Docker サポートの追加Adding Docker support

次のスクリーンショットに示すように、新しいプロジェクトを作成するときに [Enable Docker Support](Docker サポートを有効にする) を選択することで、プロジェクトの作成中に Docker サポートを有効にすることができます。You can enable Docker support during project creation by selecting Enable Docker Support when creating a new project, as shown in the following screenshot:

Visual Studio で新しい ASP.NET Core Web アプリの Docker サポートを有効にする

Visual Studio で新しい ASP.NET Core Web アプリの Docker サポートを有効にする

注意

(.NET Core ではなく) .NET Framework プロジェクトの場合、Windows コンテナーのみを使用できます。For .NET Framework projects (not .NET Core), only Windows containers are available.

既存のプロジェクトに Docker サポートを追加するには、ソリューション エクスプローラー[追加] > [Docker のサポート] の順に選択します。You can add Docker support to an existing project by selecting Add > Docker Support in Solution Explorer. [追加] > [Docker のサポート][追加] > [コンテナー オーケストレーター サポート] コマンドは、ソリューション エクスプローラー の ASP.NET Core プロジェクトのプロジェクト ノードの右クリック メニュー (またはコンテキスト メニュー) にあります。次のスクリーンショットを参照してください。The Add > Docker Support and Add > Container Orchestrator Support commands are located on the right-click menu (or context menu) of the project node for an ASP.NET Core project in Solution Explorer, as shown in the following screenshot:

Visual Studio の Docker サポートの追加メニュー オプション

Docker サポートを追加または有効にすると、Visual Studio により以下がプロジェクトに追加されます。When you add or enable Docker support, Visual Studio adds the following to the project:

  • Dockerfile ファイルa Dockerfile file
  • .dockerignore ファイルa .dockerignore file
  • Microsoft.VisualStudio.Azure.Containers.Tools.Targets に対する NuGet パッケージ参照a NuGet package reference to the Microsoft.VisualStudio.Azure.Containers.Tools.Targets

Docker サポートを追加すると、ソリューションは次のようになります。The solution looks like this once you add Docker support:

Dockerfile と .dockerignore ファイルを含むソリューション エクスプローラーのスクリーンショット

注意

以下のスクリーンショットに示すように、ASP.NET プロジェクト (.NET Framework。 .NET Core プロジェクトではありません) 用のプロジェクトの作成中に Docker のサポートを有効にすると、コンテナー オーケストレーションのサポートも追加されます。When you enable Docker support during project creation for a ASP.NET project (.NET Framework, not a .NET Core project) as shown in the following screenshot, container orchestration support is also added.

ASP.NET プロジェクトで Docker 構成のサポートを有効にする

Docker Compose のサポートDocker Compose support

Docker Compose を使って複数コンテナーのソリューションを構成する場合は、コンテナー オーケストレーションのサポートをプロジェクトに追加します。When you want to compose a multi-container solution using Docker Compose, add container orchestration support to your projects. これにより、コンテナーのグループ (ソリューション全体、またはプロジェクトのグループ) が同じ docker-compose.yml ファイル内で定義されている場合、それらを同時に実行およびデバッグすることができます。This lets you run and debug a group of containers (a whole solution or group of projects) at the same time if they're defined in the same docker-compose.yml file.

Docker Compose を使ったコンテナー オーケストレーションのサポートを追加するには、ソリューション エクスプローラー でソリューションまたはプロジェクトのノードを右クリックし、[追加] > [Container Orchestration Support](コンテナー オーケストレーション サポート) の順に選択します。To add container orchestration support using Docker Compose, right-click on the solution or project node in Solution Explorer, and choose Add > Container Orchestration Support. 次に、[Docker Compose] を選択してコンテナーを管理します。Then choose Docker Compose to manage the containers.

プロジェクトにコンテナー オーケストレーションのサポートを追加すると、次に示すように、(既になかった場合) プロジェクトに Dockerfile が追加され、ソリューション エクスプローラー 内のソリューションに docker-compose フォルダーが追加されるのを確認できます。After you add container orchestration support to your project, you see a Dockerfile added to the project (if there wasn't one there already) and a docker-compose folder added to the solution in Solution Explorer, as shown here:

Visual Studio のソリューション エクスプローラーの Docker ファイル

docker-compose.yml が既に存在する場合、Visual Studio により、構成コードの必要な行が単にそれに追加されます。If docker-compose.yml already exists, Visual Studio just adds the required lines of configuration code to it.

Docker Compose を使って制御したい他のプロジェクトで、このプロセスを繰り返します。Repeat the process with the other projects that you want to control using Docker Compose.

Kubernetes サポートKubernetes support

Kubernetes のサポートを追加するには、Visual Studio Tools for Kubernetes をインストールします。To add Kubernetes support, install the Visual Studio Tools for Kubernetes.

Kubernetes のサポートでは、ローカル プロジェクトと、Azure Kubernetes Service (AKS) で実行されている Kubernetes クラスターの間の接続を有効にし、それにより Visual Studio を使用して実行されているサービスを変更およびデバッグできます。With Kubernetes support, you can enable a connection between your local project and a Kubernetes cluster running in Azure Kubernetes Service (AKS), and thereby modify and debug your services running using Visual Studio. このサービスは Bridge to Kubernetes によって提供されます。This service is provided by Bridge to Kubernetes. Bridge to Kubernetes では、Kubernetes サービスの別のブランチを開発のために設定することもできます。そのため、開発中に運用サービスを作業中のバージョンから効率的に分離して、個別の変更が互いに明確に分離される状態を維持することができます。Bridge to Kubernetes also lets you set up separate branches of your Kubernetes services for development purposes, so you can efficiently isolate production services from working versions in development, and keep distinct modifications cleanly separated from each other.

プロジェクトに Kubernetes のサポートを追加するには、コンテナー オーケストレーションのサポートを追加するときに [Kubernetes/Helm] を選択します。To add Kubernetes support to your projects, choose Kubernetes/Helm when you add container orchestration support. いくつかのファイルがプロジェクトに追加されます。これには、Kubernetes サービスの構造を説明する Helm Chart が含まれます。Several files are added to your project, including Helm charts which describe the structure of your Kubernetes services. Bridge to Kubernetes の使用を開始するには、「Bridge to Kubernetes を使用する」を参照してください。To get started with Bridge to Kubernetes, see Use Bridge to Kubernetes.

Service Fabric のサポートService Fabric support

Visual Studio の Service Fabric ツールを使うと、Azure Service Fabric 用に開発とデバッグを行い、ローカルで実行およびデバッグし、Azure に配置することができます。With Service Fabric tools in Visual Studio, you can develop and debug for Azure Service Fabric, run and debug locally, and deploy to Azure.

Azure 開発ワークロードがインストールされた Visual Studio 2017 バージョン 15.9 以降では、Windows コンテナーと Service Fabric のオーケストレーションを使った、コンテナー化されたマイクロサービスの開発がサポートされます。Visual Studio 2017 version 15.9 and later with the Azure development workload installed supports developing containerized microservices using Windows containers and Service Fabric orchestration.

Visual Studio 2019 では、Windows コンテナーと Service Fabric のオーケストレーションを使った、コンテナー化されたマイクロサービスの開発がサポートされています。Visual Studio 2019 supports developing containerized microservices using Windows containers and Service Fabric orchestration.

詳細なチュートリアルについては、「チュートリアル:Windows コンテナー内の .NET アプリケーションを Azure Service Fabric にデプロイする」をご覧ください。For a detailed tutorial, see Tutorial: Deploy a .NET application in a Windows container to Azure Service Fabric.

Azure Service Fabric の詳細については、Service Fabric に関するページをご覧ください。For more information on Azure Service Fabric, see Service Fabric.

継続的デリバリーと継続的インテグレーション (CI/CD)Continuous delivery and continuous integration (CI/CD)

サービスのコードと構成の変更に関する自動化された継続的なインテグレーションとデリバリーのために、Visual Studio は簡単に Azure Pipelines と統合できます。Visual Studio integrates readily with Azure Pipelines for automated and continuous integration and delivery of changes to your service code and configuration. 開始するには、「Create your first pipeline (最初のパイプラインを作成する)」をご覧ください。To get started, see Create your first pipeline.

Service Fabric については、「チュートリアル:Azure DevOps Projects を使用して ASP.NET Core アプリを Azure Service Fabric にデプロイする」をご覧ください。For Service Fabric, see Tutorial: Deploy your ASP.NET Core app to Azure Service Fabric by using Azure DevOps Projects.

Kubernetes については、「Deploy a Docker container app to Azure Kubernetes Service (Azure Kubernetes Service に Docker コンテナー アプリをデプロイする)」をご覧ください。For Kubernetes, see Deploy a Docker container app to Azure Kubernetes Service.

次のステップNext steps

サービスの実装と、コンテナーを操作するための Visual Studio ツールの使用方法について詳しくは、以下の記事をご覧ください。For further details on the services implementation and use of Visual Studio tools for working with containers, read the following articles:

ローカルの Docker コンテナーでのアプリのデバッグDebugging apps in a local Docker container

Visual Studio を使用して ASP.NET Docker コンテナーをコンテナー レジストリにデプロイするDeploy an ASP.NET container to a container registry using Visual Studio