Visual Studio コンテナー ツールを構成する

Visual Studio の設定を使用すると、Visual Studio での Docker コンテナーの使用方法のいくつかの側面を制御できます。これには、Docker コンテナーを操作するときのパフォーマンスとリソースの使用状況に影響する設定などが含まれます。

コンテナー ツールの設定

メイン メニューから [ツール] > [オプション] を選択し、[コンテナー ツール] > [設定] を展開します。 コンテナー ツールの設定が表示されます。

コンテナー ツールの [全般] 設定:

次のような Visual Studio コンテナー ツールのオプションが表示されます。[必要に応じて Docker Desktop をインストールします]、[ASP.NET Core SSL 証明書を信頼する]。

コンテナー ツールの [1 つのプロジェクト] 設定と [Docker Compose] 設定:

次のような Visual Studio コンテナー ツールのオプションが表示されます。[プロジェクトを閉じるときにコンテナーを中止する]、[プロジェクトを開く際に必要な Docker イメージをプルする]、[プロジェクトを開くときにコンテナーを実行する]。

次のオプションが表示された Visual Studio コンテナー ツール。[プロジェクトを閉じるときにコンテナーを削除する]、[プロジェクトを開くときに必要な Docker イメージをプルする]、[プロジェクトを開くときにコンテナーを実行する]、[コンテナーでサービスを実行して Azure 認証を有効にする]、[コンテナーでサービスを実行してホット リロードを有効にする]。

これらのオプションの設定方法を判断する際に、次の表を参照してください。

次の表で、[全般] 設定について説明します。

名前 既定の設定 適用対象 説明
必要に応じて Docker Desktop をインストールします プロンプトを表示する 1 つのプロジェクト、Docker Compose Docker Desktop がインストールされていない場合にプロンプトを表示するかどうかを選択します。
ASP.NET Core SSL 証明書を信頼する プロンプトを表示する ASP.NET Core 2.x プロジェクト [プロンプトを表示する] に設定すると、localhost SSL 証明書が信頼されていない場合、ASP.NET Core 2.x プロジェクトを実行するたびに Visual Studio による確認のプロンプトが表示されます。

次の表で、[1 つのプロジェクト] 設定と [Docker Compose] 設定について説明します。

名前 既定の設定 適用対象 説明
プロジェクトを開く際に必要な Docker イメージをプルします True 1 つのプロジェクト、Docker Compose プロジェクトを読み込むときのパフォーマンスを向上するために、Visual Studio ではバックグラウンドで Docker のプル操作が開始されます。そのため、コードを実行する準備ができたら、イメージは既にダウンロードされているかダウンロード中です。 プロジェクトを読み込んでコードを参照するだけの場合は、False に設定して不要なコンテナー イメージをダウンロードしないようにすることができます。
プロジェクトを開くときに更新された Docker イメージをプルする .NET Core プロジェクト 1 つのプロジェクト、Docker Compose プロジェクトを開く際は、イメージに対する更新プログラムがあるかどうかを確認し、提供されている場合はダウンロードします。
プロジェクトを開くときにコンテナーを実行する True 1 つのプロジェクト、Docker Compose また、パフォーマンスを向上するために、Visual Studio では、ユーザーがコンテナーを作成して実行するときに備えて、事前にコンテナーが作成されます。 コンテナーが作成されるタイミングを制御する場合は、False に設定します。
プロジェクトを閉じるときにコンテナーを削除する True 1 つのプロジェクト、Docker Compose ソリューションを閉じた後または Visual Studio を終了した後もソリューションのコンテナーを維持したい場合は、False に設定します。
名前 既定の設定 適用対象 説明
プロジェクトを開く際に必要な Docker イメージをプルします True 1 つのプロジェクト、Docker Compose プロジェクトを読み込むときのパフォーマンスを向上するために、Visual Studio ではバックグラウンドで Docker のプル操作が開始されます。そのため、コードを実行する準備ができたら、イメージは既にダウンロードされているかダウンロード中です。 プロジェクトを読み込んでコードを参照するだけの場合は、False に設定して不要なコンテナー イメージをダウンロードしないようにすることができます。
プロジェクトを開くときに更新された Docker イメージをプルする .NET Core プロジェクト 1 つのプロジェクト、Docker Compose プロジェクトを開く際は、イメージに対する更新プログラムがあるかどうかを確認し、提供されている場合はダウンロードします。
プロジェクトを開くときにコンテナーを実行する True 1 つのプロジェクト、Docker Compose また、パフォーマンスを向上するために、Visual Studio では、ユーザーがコンテナーを作成して実行するときに備えて、事前にコンテナーが作成されます。 コンテナーが作成されるタイミングを制御する場合は、False に設定します。
プロジェクトを閉じるときにコンテナーを削除する True 1 つのプロジェクト、Docker Compose ソリューションを閉じた後または Visual Studio を終了した後もソリューションのコンテナーを維持したい場合は、False に設定します。
コンテナーでサービスを実行して Azure 認証を有効にする True 1 つのプロジェクト、Docker Compose Visual Studio バージョン 17.6 以降では、Azure 認証を補助するトークン プロキシ サービスがコンテナーで実行されるため、アプリは開発中でも Azure サービスを使用できます。 このサービスをインストールも実行もしない場合は False に設定します。
コンテナーでサービスを実行してホット リロードを有効にする True 1 つのプロジェクト、Docker Compose このサービスをインストールも実行もしない場合は False に設定します。 ホット リロード サービスは Visual Studio 2022 バージョン 17.7 以降で使用でき、デバッグなしの実行のみがサポートされています (Ctrl+F5 キー)。

[コンテナー ツール ウィンドウ] 設定を使用すると、Docker コンテナーおよびイメージに関する情報を表示する [コンテナー] ツール ウィンドウに適用される設定を制御できます。 「コンテナー ウィンドウを使用する」を参照してください

Visual Studio コンテナー ツールのオプション。[コンテナー] ツール ウィンドウで使用できる設定が表示されます

次の表に、 [コンテナー] ウィンドウ設定について説明しています。

名前 既定の設定 説明
コンテナーを取り除く前に確認する Always (常に) 未使用のコンテナーを取り除く際にプロンプトが表示されるようにするかどうかを制御します。
イメージを取り除く前に確認する Always (常に) 未使用のイメージを取り除く際にプロンプトが表示されるようにするかどうかを制御します。
コンテナーを削除する前に確認する Always (常に) コンテナーを削除する際にプロンプトが表示されるようにするかどうかを制御します。
イメージを削除する前に確認する Always (常に) イメージを削除する際にプロンプトが表示されるようにするかどうかを制御します。
多数のイメージを実行する前に確認する Always (常に) 一度に 10 を超えるイメージからコンテナーを開始する前に、プロンプトが表示されるようにするかどうかを制御します。

警告

localhost SSL 証明書が信頼されていない場合、チェックボックスをオンにしてプロンプトを表示しないようにすると、アプリまたはサービスの実行時に HTTPS Web 要求が失敗する場合があります。 そうした時は、[メッセージを表示しない] チェックボックスをオフにしてプロジェクトを実行し、プロンプトで信頼を許可します。

Azure 認証を構成する

アプリで Azure サービスを使用する場合は、コンテナーでの実行時に Azure サービスで認証するために、適切な認証資格情報が必要です。 開発中、通常はアプリが運用環境で使用する資格情報の代わりに独自の Azure 資格情報を使用できますが、コンテナー環境では、実行中のコンテナー化されたアプリに有用な、適切な資格情報が必要です。

Visual Studio 2022 バージョン 17.6 以降では、単一コンテナー プロジェクトと Docker Compose プロジェクトの両方でトークン プロキシ サービスがコンテナーでデプロイおよび実行され、アプリとサービスが Azure で認証されます。 この機能には Azure Identity 1.9.0 以降が必要です。 このサービスを有効にすると、コンテナー内で追加の構成や設定をしなくても、自動的にほとんどの Azure サービスを使用できます。 具体的には、コードで DefaultAzureCredentialVisualStudioCredential を使用して、コンテナーの外部と同じ方法で Azure サービスで認証できます。 詳しくは、「Azure Identity 1.9.0 README」をご覧ください。

この機能を無効にするには、[ツール]>[オプション] の設定 [コンテナーでサービスを実行して Azure 認証を有効にする] (この記事で前述) を False に設定します。

注意事項

トークン プロキシを使用しており、かつ特定のコンテナー ツール診断ログを有効にしている場合、潜在的なセキュリティの懸念があります。 ログが有効な場合、認証資格情報がプレーン テキストとしてログに記録される場合があります。 これらのログは特定の環境変数によって有効になります。 単一コンテナー プロジェクトの場合、環境変数は MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED で、%tmp%\Microsoft.VisualStudio.Containers.Tools にログが記録されます。 Docker Compose プロジェクトの場合、環境変数は MS_VS_DOCKER_TOOLS_LOGGING_ENABLED で、%tmp%\Microsoft.VisualStudio.DockerCompose.Tools にログが記録されます。

この概要で、Visual Studio でのコンテナーの操作の詳細について確認します。