次の方法で共有


コンテナー ボリューム マッピングをカスタマイズする

コンテナーでデバッグを機能させるために、Visual Studio ではボリューム マッピングを使用して、ホスト コンピューターからデバッガーと NuGet フォルダーをマップします。 ボリューム マッピングについては、の Docker ドキュメント参照してください。 Visual Studio の [コンテナー] ウィンドウを使用して、コンテナーのボリューム マッピングを表示できます。

前提 条件

  • Docker Desktop
  • Web 開発Azure Tools ワークロード、.NET デスクトップ開発ワークロードのいずれか、またはすべてがインストールされた Visual Studio 2019 以降

Visual Studio コンテナー イメージでのボリューム マウント

コンテナーにマウントされているボリュームを次に示します。

容積 説明
アプリ フォルダー Dockerfile が配置されているプロジェクト フォルダーを格納します。
NuGet パッケージのフォルダー プロジェクト内の obj{project}.csproj.nuget.g.props ファイルから読み取られた NuGet パッケージとフォールバック フォルダーが含まれています。
リモート デバッガー プロジェクトの種類に応じて、コンテナーでデバッガーを実行するために必要なビットが含まれます。 デバッグ用のコンテナーイメージをカスタマイズするには、セクションを参照してください
ソース フォルダー Docker コマンドに渡されるビルド コンテキストが含まれています。

コンテナーにマウントされているボリュームを次に示します。 コンテナーに表示される内容は、使用している Visual Studio 2022 のマイナー バージョンによって異なる場合があります。

容積 説明
アプリ フォルダー Dockerfile が配置されているプロジェクト フォルダーを格納します。
NuGet パッケージ フォルダー プロジェクト内の obj{project}.csproj.nuget.g.props ファイルから読み取られた NuGet パッケージとフォールバック フォルダーが含まれています。
リモート デバッガー プロジェクトの種類に応じて、コンテナーでデバッガーを実行するために必要なビットが含まれます。 詳細については、「のデバッグ用にコンテナー イメージをカスタマイズする」を参照してください。
ソース フォルダー Docker コマンドに渡されるビルド コンテキストが含まれています。
VSTools デバッガーのサポート、コンテナー ウィンドウ、Azure トークンの処理、ホット リロード エージェント、ディストリビューションレス ヘルパーなど、コンテナーの操作をサポートする Visual Studio ツールが含まれています。

.NET 8 の場合、ルートと、ユーザー シークレットと HTTPS 証明書を含むアプリ ユーザーの追加のマウント ポイントも存在する可能性があります。

手記

Visual Studio 17.10 Docker Desktop を使用せずに Windows Subsystem for Linux (WSL) で Docker エンジンを使用している場合は、ボリューム マウントの作成時に Visual Studio で WSL パスを使用するように環境変数 VSCT_WslDaemon=1 設定します。 NuGet パッケージ Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 も必要です。

コア Web アプリ ASP.NET 場合は、SSL 証明書とユーザー シークレット用の 2 つの追加フォルダーが存在する可能性があります。詳細については、「コンテナー化された ASP.NET Core アプリに SSL を使用する」で詳しく説明

コンテナー ボリュームをマウントする

docker run コマンドライン引数を使用して、別のボリュームをマウントできます。

  1. コンテナー化されたプロジェクトのプロジェクト ファイルを開きます。

  2. 新しいコマンド ライン引数を指定するには、MSBuild プロパティ DockerfileRunArgumentsを追加し、-v または --mount 構文を指定します。 たとえば、次の構文では、ボリューム myvolume が作成され、/scratchフォルダー内のコンテナーにマウントされます。

    <PropertyGroup>
       <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments>
    </PropertyGroup>
    

    -v または --mount オプションのコマンドライン構文については、Docker のドキュメントを参照してください。