Windows 上の Visual Studio で Docker ツールを使用するUse Docker Tools in Visual Studio on Windows

Visual Studio 2017 バージョン 15.7 以降に含まれている Docker ツールを使用する場合の開発者ワークフローは、Visual Studio Code と Docker CLI の使用と似ています (実際、同じ Docker CLI に基づいています) が、より簡単に始めることができ、プロセスが簡単であり、ビルド、実行、および構成タスクの生産性を高めることができます。The developer workflow when using the Docker Tools included in Visual Studio 2017 version 15.7 and later, is similar to using Visual Studio Code and Docker CLI (in fact, it's based on the same Docker CLI), but it's easier to get started, simplifies the process, and provides greater productivity for the build, run, and compose tasks. また、Visual Studio の通常の F5 キーと Ctrl+F5 キーを使用してコンテナーを実行およびデバッグすることもできます。It can also run and debug your containers via the usual F5 and Ctrl+F5 keys from Visual Studio. コンテナーがソリューション レベルで同じ docker-compose.yml ファイルに定義されている場合は、ソリューション全体をデバッグすることもできます。You can even debug a whole solution if its containers are defined in the same docker-compose.yml file at the solution level.

ローカル環境を構成するConfigure your local environment

Docker for Windows の最新バージョンでは、次の参考ドキュメントで説明されているように、設定が簡単なので、Docker アプリケーションの開発がこれまでよりも簡単になりました。With the latest versions of Docker for Windows, it's easier than ever to develop Docker applications because the setup is straightforward, as explained in the following references.

ヒント

Docker for Windows のインストールの詳細については、(https://docs.docker.com/docker-for-windows/) を参照してください。To learn more about installing Docker for Windows, go to (https://docs.docker.com/docker-for-windows/).

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

プロジェクトに追加できる Docker サポートには 2 つのレベルがあります。There are two levels of Docker support you can add to a project. ASP.NET Core プロジェクトでは、Docker サポートを有効にしてプロジェクトに Dockerfile ファイルを追加するだけです。In ASP.NET Core projects, you can just add a Dockerfile file to the project by enabling Docker support. 次のレベルはコンテナー オーケストレーションのサポートです。(まだ存在しない場合は) Dockerfile をプロジェクトに追加し、ソリューション レベルで docker-compose.yml ファイルを追加します。The next level is container orchestration support, which adds a Dockerfile to the project (if it doesn't already exist) and a docker-compose.yml file at the solution level. Docker Compose によるコンテナー オーケストレーションのサポートは、Visual Studio 2017 バージョン 15.0 から 15.7 で既定で追加されています。Container orchestration support, via Docker Compose, is added by default in Visual Studio 2017 versions 15.0 to 15.7. コンテナー オーケストレーションのサポートは、Visual Studio 2017 バージョン 15.8 以降のオプトイン機能です。Container orchestration support is an opt-in feature in Visual Studio 2017 versions 15.8 or later. Visual Studio 2019 以降では、Kubernetes/Helm デプロイもサポートされています。Visual Studio 2019 and later supports Kubernetes/Helm deployment as well.

[追加] > [Docker のサポート][追加] > [コンテナー オーケストレーター サポート] コマンドは、ソリューション エクスプローラー の ASP.NET Core プロジェクトのプロジェクト ノードの右クリック メニュー (またはコンテキスト メニュー) にあります。図 4-31 を参照してください。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 Figure 4-31:

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

図 4-31Figure 4-31. Visual Studio 2019 プロジェクトに Docker サポートを追加するAdding Docker support to a Visual Studio 2019 project

Docker サポートの追加Add Docker support

前のセクションに示すような、Docker サポートを既存のアプリケーションに追加するオプションに加えて、プロジェクトの作成中に Docker サポートを有効にするには、図 4-32 に示すように、 [新しいプロジェクト] ダイアログ ボックスで [OK] をクリックすると開く [新しい ASP.NET Core Web アプリケーション] ダイアログ ボックスで、 [Docker サポートを有効にする] を選択します。Besides the option to add Docker support to an existing application, as shown in the previous section, you can also enable Docker support during project creation by selecting Enable Docker Support in the New ASP.NET Core Web Application dialog box that opens after you click OK in the New Project dialog box, as shown in Figure 4-32.

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

図 4-32Figure 4-32. Visual Studio 2019 でプロジェクトの作成中に Docker サポートを有効にするEnable Docker support during project creation in Visual Studio 2019

Docker サポートを追加または有効にすると、Visual Studio によって Dockerfile ファイルがプロジェクトに追加されます。このファイルには、ソリューションからの必要なすべてのプロジェクトへの参照が含まれています。When you add or enable Docker support, Visual Studio adds a Dockerfile file to the project, that includes references to all required project from the solution.

コンテナー オーケストレーションのサポートを追加するAdd container orchestration support

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

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

プロジェクトにコンテナー オーケストレーションのサポートを追加すると、図 4-33 に示すように、プロジェクトに Dockerfile が追加され、ソリューション エクスプローラー 内のソリューションに docker-compose フォルダーが追加されるのを確認できます。After you add container orchestration support to your project, you see a Dockerfile added to the project and a docker-compose folder added to the solution in Solution Explorer, as shown in Figure 4-33:

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

図 4-33Figure 4-33. Visual Studio 2019 のソリューション エクスプローラーの Docker ファイルDocker files in Solution Explorer in Visual Studio 2019

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

Docker ツールを構成するConfigure Docker tools

メイン メニューから [ツール] > [オプション] を選択し、[コンテナー ツール] > [設定] を展開します。From the main menu, choose Tools > Options, and expand Container Tools > Settings. コンテナー ツールの設定が表示されます。The container tools settings appear.

Visual Studio Docker ツールのオプションであり、3 つのページ ([全般]、[1 つのプロジェクト]、[Docker Compose])、記事のテキストに記載されている詳細を示しています。

図 4-34.Figure 4-34. Docker ツールのオプションDocker Tools Options

これらのオプションの設定方法を判断する際に、次の表を参照してください。The following table might help you decide how to set these options.

ページ/設定Page/Setting 既定の設定Default Setting 説明Description
[全般] ページGeneral page
必要に応じて Docker Desktop をインストールしますInstall Docker Desktop if needed プロンプトを表示するPrompt me
必要に応じて Docker Desktop を開始しますStart Docker Desktop if needed プロンプトを表示するPrompt me
ASP.NET Core SSL 証明書を信頼するTrust ASP.NET Core SSL certificate プロンプトを表示するPrompt me localhost SSL 証明書が信頼済み (dotnet dev-certs https --trust) としてマークされていない場合、プロジェクトを実行するたびに Visual Studio によって確認メッセージが表示されます。If the localhost SSL certificate hasn't been marked as trusted (with dotnet dev-certs https --trust), Visual Studio will prompt every time you run your project.
[1 つのプロジェクト] ページSingle Project page
プロジェクトを開く際に必要な Docker イメージをプルしますPull required Docker images on project open TrueTrue プロジェクトを実行するときのパフォーマンスを向上させるために、Visual Studio ではバックグラウンドで Docker のプル操作が開始されます。そのため、コードを実行する準備ができたときには、イメージは既にダウンロードされているかダウンロード中です。For increased performance when running the project, Visual Studio will start a Docker pull operation in the background so that when you're ready to run your code, the image is already downloaded or in the process of downloading. プロジェクトを読み込んでコードを参照するだけの場合は、これをオフにして不要なコンテナー イメージをダウンロードしないようにすることができます。If you're just loading projects and browsing code, you can turn this off to avoid downloading container images you don't need. これにより、ユーザーがプロジェクトを開く操作を行うのに時間がかかる可能性があります。This could slow the open project user experience.
更新された Docker イメージを、プロジェクトを読み込むときにプルするPull updated Docker images on project load .NET Core プロジェクト.NET Core projects 既存のイメージに対する更新をプルして、プロジェクトを開くときに最新の更新プログラムを取得します。Pull updates to existing images to get the latest updates on project open. これにより、ユーザーがプロジェクトを開く操作を行うのに時間がかかる可能性があります。This could slow the open project user experience.
プロジェクトを閉じるときにコンテナーを削除するRemove containers on project close TrueTrue プロジェクトを閉じるときにクリーンアップします。これにより、ユーザーがプロジェクトを閉じる操作を行うのに時間がかかる可能性がありますが、通常はすばやく行われます。Clean up on project close, This could slow the close project user experience but it's usually fast anyway.
プロジェクトを開くときにコンテナーを実行するRun containers on project open TrueTrue プロジェクトを実行するときのパフォーマンスを向上させるために、Visual Studio によってソリューション内のすべてのコンテナーの起動が行われます。For increased performance when running the project, Visual Studio will start all containers in the solution. これにより、ユーザーがプロジェクトを開く操作を行うのに時間がかかる可能性があります。This could slow the open project user experience.
Docker ComposeDocker Compose [Docker Compose] ページには、[1 つのプロジェクト] ページと同じ設定が含まれていますが、この設定は複数コンテナーのソリューションに適用されます。The Docker Compose page contains the same settings as the Single Project page, but they apply to multi-container solutions.

警告

localhost SSL 証明書が信頼されていない場合にオプションを [不可] に設定すると、アプリまたはサービスの実行時に HTTPS Web 要求が失敗する可能性があります。If the localhost SSL certificate is not trusted, and you set the option to Never, then HTTPS web requests might fail at runtime in your app or service. その場合は、値を [プロンプトを表示する] の設定に戻すか、コマンド dotnet dev-certs https --trust を使用して、開発用コンピューターで証明書を再度信頼します。In that case, set the value back again to Prompt me or, better again, trust the certificates in your dev machine using the command dotnet dev-certs https --trust.

ヒント

サービスの実装と、Visual Studio Tools for Docker の使用方法の詳細については、以下の記事を参照してください。For further details on the services implementation and use of Visual Studio Tools for Docker, read the following articles:

ローカルの Docker コンテナーでのアプリのデバッグ (/visualstudio/containers/edit-and-refresh)Debug apps in a local Docker container: /visualstudio/containers/edit-and-refresh

Visual Studio を使用して ASP.NET Docker コンテナーをコンテナー レジストリにデプロイする: /visualstudio/containers/hosting-web-apps-in-dockerDeploy an ASP.NET container to a container registry using Visual Studio: /visualstudio/containers/hosting-web-apps-in-docker