Konfigurieren von Visual Studio-Containertools

Mithilfe der Visual Studio-Einstellungen können Sie bestimmte Eigenschaften festlegen, die darüber entscheiden, wie Visual Studio mit Docker-Containern zusammenarbeitet. Beispielsweise können Sie die Einstellungen für die Leistung und den Ressourcenverbrauch anpassen.

Einstellungen für Containertools

Wählen Sie im Hauptmenü Extras > Optionen aus, und klappen Sie Containertools > Einstellungen auf. Die Einstellungen der Containertools werden angezeigt.

Einstellungen unter Allgemein für Containertools:

Die folgenden Optionen für die Visual Studio Container Tools werden angezeigt: „Installieren Sie Docker Desktop bei Bedarf“ und „Vertrauen Sie dem ASP.NET Core SSL-Zertifikat“.

Einstellungen unter Einzelnes Projekt und Docker Compose für Containertools:

Die folgenden Optionen für die Visual Studio Container Tools werden angezeigt: „Container beim Schließen des Projekts beenden“, „Erforderliche Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen“ und „Container beim Öffnen des Projekts ausführen“.

Optionen für Visual Studio Container Tools, die angezeigt werden: Container beim Schließen des Projekts löschen, erforderliche Docker-Images beim Öffnen des Projekts ziehen, Container beim Öffnen des Projekts ausführen, einen Dienst in Containern ausführen, um die Azure-Authentifizierung zu aktivieren, und einen Dienst in Containern ausführen, um Hot Reload zu aktivieren.

Die folgende Tabelle hilft Ihnen möglicherweise beim Festlegen dieser Optionen.

Die Einstellungen unter Allgemein sind in der folgenden Tabelle beschrieben:

Name Standardeinstellung Gilt für BESCHREIBUNG
Installieren Sie bei Bedarf Docker für Windows Aufforderung Einzelnes Projekt, Docker Compose Wählen Sie aus, ob eine Benachrichtigung angezeigt werden soll, wenn Docker Desktop nicht installiert ist.
ASP.NET Core-SSL-Zertifikat als vertrauenswürdig einstufen Aufforderung ASP.NET Core 2.x-Projekte Wenn Aufforderung aktiviert und das localhost-SSL-Zertifikat nicht vertrauenswürdig ist, benachrichtigt Visual Studio Sie bei jeder Ausführung eines ASP.NET Core 2.x-Projekts.

In der folgenden Tabelle werden die Einstellungen unter Einzelnes Projekt und Docker Compose beschrieben:

Name Standardeinstellung Gilt für BESCHREIBUNG
Erforderliche Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen True Einzelnes Projekt, Docker Compose Zum Steigern der Leistung beim Laden von Projekten beginnt Visual Studio einen Docker-Pull-Vorgang im Hintergrund, sodass das Image bereits heruntergeladen ist oder heruntergeladen wird, wenn Sie zur Ausführung Ihres Codes bereit sind. Wenn Sie lediglich Projekte laden und Code durchsuchen, können Sie False festlegen, um das Herunterladen von Containerimages zu vermeiden, die Sie nicht benötigen.
Aktualisierte Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen .NET Core-Projekte Einzelnes Projekt, Docker Compose Wenn Sie ein Projekt öffnen, suchen Sie nach Updates für Images, und laden Sie sie herunter, falls diese verfügbar sind.
Container beim Öffnen des Projekts ausführen True Einzelnes Projekt, Docker Compose Visual Studio nutzt einen Ahead-of-time-Prozess zur Erstellung eines Containers, der bereitsteht, wenn Sie Ihren Container erstellen und ausführen. Auch diese Maßnahme dient der Leistungsoptimierung. Wenn Sie steuern möchten, wann Ihr Container erstellt wird, legen Sie False fest.
Entfernen von Containern beim Schließen des Projekts True Einzelnes Projekt, Docker Compose Legen Sie False fest, wenn Container für Ihre Projektmappe beibehalten werden sollen, nachdem die Projektmappe oder Visual Studio geschlossen wurde.
Name Standardeinstellung Gilt für BESCHREIBUNG
Erforderliche Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen True Einzelnes Projekt, Docker Compose Zum Steigern der Leistung beim Laden von Projekten beginnt Visual Studio einen Docker-Pull-Vorgang im Hintergrund, sodass das Image bereits heruntergeladen ist oder heruntergeladen wird, wenn Sie zur Ausführung Ihres Codes bereit sind. Wenn Sie lediglich Projekte laden und Code durchsuchen, können Sie False festlegen, um das Herunterladen von Containerimages zu vermeiden, die Sie nicht benötigen.
Aktualisierte Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen .NET Core-Projekte Einzelnes Projekt, Docker Compose Wenn Sie ein Projekt öffnen, suchen Sie nach Updates für Images, und laden Sie sie herunter, falls diese verfügbar sind.
Container beim Öffnen des Projekts ausführen True Einzelnes Projekt, Docker Compose Visual Studio nutzt einen Ahead-of-time-Prozess zur Erstellung eines Containers, der bereitsteht, wenn Sie Ihren Container erstellen und ausführen. Auch diese Maßnahme dient der Leistungsoptimierung. Wenn Sie steuern möchten, wann Ihr Container erstellt wird, legen Sie False fest.
Entfernen von Containern beim Schließen des Projekts True Einzelnes Projekt, Docker Compose Legen Sie False fest, wenn Container für Ihre Projektmappe beibehalten werden sollen, nachdem die Projektmappe oder Visual Studio geschlossen wurde.
Ausführen eines Diensts in Containern zum Aktivieren der Azure-Authentifizierung True Einzelnes Projekt, Docker Compose Visual Studio Version 17.6 oder höher führt einen Tokenproxy-Dienst im Container aus, der die Azure-Authentifizierung unterstützt, sodass Ihre Apps Azure-Dienste während der Entwicklung verwenden können. Legen Sie die Option auf False fest, wenn dieser Dienst nicht installiert und ausgeführt werden soll.
Ausführen eines Diensts in Containern zum Aktivieren von Hot Reload True Einzelnes Projekt, Docker Compose Legen Sie die Option auf False fest, wenn dieser Dienst nicht installiert und ausgeführt werden soll. Der Hot Reload-Dienst ist in Visual Studio 2022 Version 17.7 und höher verfügbar und unterstützt nur die Ausführung ohne Debuggen (STRG+F5).

Die Einstellungen des Containertoolfensters steuern die Einstellungen, die für das Toolfenster Container gelten, das Informationen zu Docker-Containern und -Images anzeigt. Weitere Informationen finden Sie unter Verwenden des Fensters „Container“.

Visual Studio-Optionen für Containertools mit den für das Toolfenster „Container“ verfügbaren Einstellungen

Die die Einstellungen für das Container-Fenster werden in der folgenden Tabelle beschrieben:

Name Standardeinstellung BESCHREIBUNG
Vor dem Löschen von Containern Bestätigung anfordern Always Steuert, ob beim Löschen nicht verwendeter Container eine Aufforderung angezeigt wird
Vor dem Löschen von Images Bestätigung anfordern Always Steuert, ob beim Löschen nicht verwendeter Images eine Aufforderung angezeigt wird
Vor dem Entfernen eines Containers bestätigen Always Steuert, ob beim Entfernen eines Containers eine Aufforderung angezeigt wird
Vor dem Entfernen eines Images bestätigen Always Steuert, ob beim Entfernen eines Images eine Aufforderung angezeigt wird
Bestätigung vor dem Ausführen einer großen Anzahl von Images Always Steuert, ob vor dem Start von Containern für mehr als zehn Images gleichzeitig eine Aufforderung angezeigt wird

Warnung

Wenn das localhost-SSL-Zertifikat nicht vertrauenswürdig ist und Sie das Kontrollkästchen auswählen, um die Benachrichtigung zu unterdrücken, treten in Ihrer App oder Ihrem Dienst bei HTTPS-Webanforderungen zur Laufzeit möglicherweise Fehler auf. Deaktivieren Sie in diesem Fall das Nicht fragen-Kontrollkästchen, führen Sie Ihr Projekt aus, und drücken Sie bei der Aufforderung Ihr Vertrauen aus.

Konfigurieren der Azure-Authentifizierung

Wenn Ihre App Azure-Dienste verwendet, benötigt sie die entsprechenden Anmeldeinformationen für die Authentifizierung, wenn sie in einem Container ausgeführt wird, um sich bei Azure-Diensten zu authentifizieren. Während der Entwicklung können Sie normalerweise Ihre eigenen Azure-Anmeldeinformationen anstelle der Anmeldeinformationen verwenden, die die App in der Produktion verwendet. Diese Anmeldeinformationen sind jedoch in der Containerumgebung erforderlich, damit sie für die ausgeführte containerisierte App nützlich sind.

Ab Visual Studio 2022 Version 17.6 wird in Einzelcontainer- und Docker Compose-Projekten ein Token-Proxydienst bereitgestellt und in Ihren Containern ausgeführt, mit dem Sich Ihre Apps und Dienste in Azure authentifizieren können. Das Feature erfordert Azure Identity 1.9.0 oder höher. Wenn dieser Dienst aktiviert ist, können Sie die meisten Azure-Dienste automatisch ohne zusätzliche Konfiguration oder Einrichtung innerhalb des Containers verwenden. Insbesondere kann Ihr Code DefaultAzureCredential und VisualStudioCredential verwenden, um sich bei Azure-Diensten auf die gleiche Weise wie außerhalb eines Containers zu authentifizieren. Weitere Informationen finden Sie in der Infodatei zu Azure Identity 1.9.0.

Um dieses Feature zu deaktivieren, legen Sie unter Tools>Optionen die Einstellung Einen Dienst in Containern zum Aktivieren der Azure-Authentifizierung ausführen (weiter oben in diesem Artikel beschrieben) auf False fest.

Achtung

Es besteht ein potenzielles Sicherheitsproblem, wenn Sie den Tokenproxy verwenden und bestimmte Diagnoseprotokolle für Container-Tools aktiviert haben. Wenn die Protokollierung aktiviert ist, können Authentifizierungsanmeldeinformationen als Nur-Text protokolliert werden. Diese Protokolle werden durch bestimmte Umgebungsvariablen aktiviert. Für einzelne Containerprojekte ist die Umgebungsvariable MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED, die dann in %tmp%\Microsoft.VisualStudio.Containers.Tools protokolliert wird. Für Docker Compose-Projekte lautet die Variable MS_VS_DOCKER_TOOLS_LOGGING_ENABLED, und sie wird in %tmp%\Microsoft.VisualStudio.DockerCompose.Tools protokolliert.

Weitere Informationen zum Arbeiten mit Containern in Visual Studio finden Sie in der Übersicht.