Windows 上の Visual Studio 2017 で Docker ツールを使用するUse Docker Tools in Visual Studio 2017 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 2017 での Docker サポートDocker support in Visual Studio 2017

プロジェクトに追加できる 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. バージョン 15.8 以降では、Docker Compose と Service Fabric をサポートします。Version 15.8 an later support Docker Compose and Service Fabric.

[追加] > [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 2017 プロジェクトに Docker サポートを追加するAdding Docker support to a Visual Studio 2017 project

Docker サポートの追加Add Docker support

既存の ASP.NET Core プロジェクトに Docker サポートを追加するには、ソリューション エクスプローラー[追加] > [Docker のサポート] の順に選択します。You can add Docker support to an existing ASP.NET Core project by selecting Add > Docker Support in Solution Explorer. プロジェクトの作成中に Docker サポートを有効にするには、図 4-32 に示すように、 [新しいプロジェクト] ダイアログ ボックスで [OK] をクリックすると開く [新しい ASP.NET Core Web アプリケーション] ダイアログ ボックスで、 [Docker サポートを有効にする] を選択します。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 2017 でプロジェクトの作成中に Docker サポートを有効にするEnable Docker support during project creation in Visual Studio 2017

Docker サポートを追加または有効にすると、Visual Studio によって Dockerfile ファイルがプロジェクトに追加されます。When you add or enable Docker support, Visual Studio adds a Dockerfile file to the project.

注意

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

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

図 4-33Figure 4-33. Visual Studio 2017 で ASP.NET プロジェクトに対する Docker Compose のサポートを有効にするEnabling Docker Compose support for an ASP.NET project in Visual Studio 2017

コンテナー オーケストレーションのサポートを追加する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. 次に、 [Docker Compose] または [Service Fabric] を選択してコンテナーを管理します。Then choose Docker Compose or Service Fabric to manage the containers.

プロジェクトにコンテナー オーケストレーションのサポートを追加すると、図 4-34 に示すように、プロジェクトに 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-34:

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

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

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 ツールのオプション。[必要な Docker イメージをプロジェクト読み込み時に自動的にプルする]、[コンテナーをバックグラウンドで自動的に開始する]、[ソリューションを閉じる際に、コンテナーを自動的に強制終了します]、[localhost SSL 証明書を信頼するためのメッセージを表示しない]。

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

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

nameName 既定の設定Default Setting 対象Applies To 説明Description
必要な Docker イメージをプロジェクト読み込み時に自動的にプルするAutomatically pull required Docker images on project load オンOn Docker ComposeDocker Compose プロジェクトを読み込むときのパフォーマンスを向上するために、Visual Studio ではバックグラウンドで Docker のプル操作が開始されます。そのため、コードを実行する準備ができたら、イメージは既にダウンロードされているかダウンロード中です。For increased performance when loading projects, 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.
コンテナーをバックグラウンドで自動的に開始するAutomatically start containers in background オンOn Docker ComposeDocker Compose また、パフォーマンスを向上するために、Visual Studio では、ユーザーがコンテナーを作成して実行するときに備えてボリュームのマウントを使用してコンテナーが作成されます。Again for increased performance, Visual Studio creates a container with volume mounts ready for when you build and run your container. コンテナーを作成するタイミングを制御する場合は、これをオフにします。If you want to control when your container is created, turn this off.
ソリューションを閉じる際に、コンテナーを自動的に強制終了しますAutomatically kill containers on solution close オンOn Docker ComposeDocker Compose ソリューションを閉じた後または Visual Studio を終了した後もソリューションのコンテナーを実行し続ける場合は、これをオフにします。Turn this off if you would like containers for your solution to continue to run after closing the solution or closing Visual Studio.
localhost SSL 証明書を信頼するためのメッセージを表示しないDo not prompt for trusting localhost SSL certificate オフOff ASP.NET Core 2.2 プロジェクトASP.NET Core 2.2 projects localhost SSL 証明書が信頼されていない場合、このチェックボックスがオンになっていない限り、プロジェクトを実行するたびに Visual Studio によって確認メッセージが表示されます。If the localhost SSL certificate is not trusted, Visual Studio will prompt every time you run your project, unless this checkbox is checked.

警告

localhost SSL 証明書が信頼されていない場合に、プロンプトが表示されないようにチェックボックスをオンにすると、HTTPS Web 要求はアプリまたはサービスの実行時に失敗する可能性があります。If the localhost SSL certificate is not trusted, and you check the box to suppress prompting, then HTTPS web requests might fail at runtime in your app or service. その場合は、 [メッセージを表示しない] チェックボックスをオフにしてプロジェクトを実行し、プロンプトで信頼を示します。In that case, uncheck the Do not prompt checkbox, run your project, and indicate trust at the prompt.

ヒント

サービスの実装と、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 コンテナーでのアプリのデバッグ: https://docs.microsoft.com/azure/vs-azure-tools-docker-edit-and-refreshDebugging apps in a local Docker container: https://docs.microsoft.com/azure/vs-azure-tools-docker-edit-and-refresh

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