Freigeben über


Anpassen der Containervolumezuordnung

Damit das Debuggen in Containern funktioniert, verwendet Visual Studio die Volumezuordnung, um den Debugger und die NuGet-Ordner vom Hostcomputer zuzuordnen. Die Volumezuordnung ist in der Docker-Dokumentation beschrieben. Sie können die Volume-Zuordnungen für einen Container anzeigen, indem Sie das Fenster Container in Visual Studioverwenden.

Voraussetzungen

Volumebereitstellungen in Visual Studio-Containerimages

Dies sind die Volumes, die in Ihrem Container bereitgestellt werden:

Volumen Beschreibung
App-Ordner Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet.
NuGet-Paketordner Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden.
Remotedebugger Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen.
Quellordner Enthält den Buildkontext, der an Docker-Befehle übergeben wird.

Dies sind die Volumes, die in Ihrem Container bereitgestellt werden. Was in Ihren Containern angezeigt wird, hängt möglicherweise von der Nebenversion von Visual Studio 2022 ab, die Sie verwenden.

Volumen Beschreibung
App-Ordner Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet.
NuGet-Paketordner Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden.
Remotedebugger Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen.
Quellordner Enthält den Buildkontext, der an Docker-Befehle übergeben wird.
VSTools Enthält Visual Studio-Tools, die das Arbeiten mit dem Container unterstützen, einschließlich Unterstützung für den Debugger, die Container Fenster, die Behandlung von Azure-Token, der Hot Reload-Agent und der Distroless Helper.

Für .NET 8 können zusätzliche Bereitstellungspunkte im Stammverzeichnis und für die App-Benutzenden ebenfalls vorhanden sein, die Benutzergeheimnisse und das HTTPS-Zertifikat enthalten.

Anmerkung

Visual Studio 17.10 Wenn Sie das Docker-Modul im Windows-Subsystem für Linux (WSL) ohne Docker Desktop verwenden, legen Sie die Umgebungsvariable VSCT_WslDaemon=1 fest, damit Visual Studio WSL-Pfade beim Erstellen von Volume mounts verwendet. Das NuGet-Paket Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 ist ebenfalls erforderlich.

Für ASP.NET Core-Web-Apps gibt es möglicherweise zwei zusätzliche Ordner für das SSL-Zertifikat und die Benutzergeheimnisse, die unter Verwenden von SSL für containerisierte ASP.NET Core-Apps ausführlicher erklärt werden.

Bereitstellen eines Containervolumes

Sie können ein weiteres Volume mit den docker run-Befehlszeilenargumenten bereitstellen.

  1. Öffnen Sie die Projektdatei für das containerisierte Projekt.

  2. Um ein neues Befehlszeilenargument anzugeben, fügen Sie die MSBuild-Eigenschaft DockerfileRunArgumentshinzu, und stellen Sie die syntax -v oder --mount bereit. Ein Beispiel: Die folgende Syntax erstellt ein Volume myvolume und stellt es im Container im Ordner /scratchbereit.

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

    In der Docker-Dokumentation finden Sie die Befehlszeilensyntax für die Optionen -v oder -mount.