Konfigurieren von Visual Studio-Containertools

Sie können einige Aspekte der Funktionsweise von Visual Studio mit Docker- oder Podman-Containern mithilfe der Containertoolseinstellungen steuern. In diesem Artikel wird beschrieben, wie Sie Containertools-Einstellungen konfigurieren, die sich auf die Leistung von Visual Studio und die Ressourcennutzung auswirken können, wenn Sie mit Containern arbeiten.

Sie können einige Aspekte der Funktionsweise von Visual Studio mit Docker-Containern mithilfe der Containertools-Einstellungen steuern. In diesem Artikel wird beschrieben, wie Sie Containertools-Einstellungen konfigurieren, die sich auf die Leistung von Visual Studio und die Ressourcennutzung auswirken können, wenn Sie mit Docker-Containern arbeiten.

Voraussetzungen

Voraussetzungen

  • Docker Desktop.
  • Visual Studio mit installierter ASP.NET- und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .

Einstellungen für Containertools

Um auf die Einstellungen zuzugreifen, wählen Sie im Visual Studio-Hauptmenü "Extrasoptionen" aus.To access the settings, select Tools > Options from the main Visual Studio menu. Scrollen Sie im linken Bereich nach unten, und erweitern Sie die Containertools.

Allgemeine Einstellungen

Screenshot der Optionen für Visual Studio-Containertools.

In der folgenden Tabelle werden die allgemeinen Einstellungen beschrieben:

Konfiguration Standardwert BESCHREIBUNG
Installieren von Docker Desktop bei Bedarf Aufforderung Wählen Sie aus, ob Sie gefragt werden möchten, ob Docker Desktop nicht installiert ist.
Starten Von Docker Desktop bei Bedarf Aufforderung Wenn Docker Desktop nicht gestartet wird, wählen Sie aus, ob sie automatisch gestartet werden soll oder ob Sie dazu aufgefordert werden sollen.
Vertrauen in das ASP.NET Core SSL-Zertifikat Aufforderung Wählen Sie, ob bei einem nicht vertrauenswürdigen localhost SSL-Zertifikat in einem ASP.NET Core-Projekt eine Aufforderung angezeigt werden soll.

Screenshot der Optionen für Visual Studio-Containertools.

In der folgenden Tabelle werden die allgemeinen Einstellungen beschrieben:

Konfiguration Standardwert BESCHREIBUNG
Aufforderung zur Installation einer Container-Runtime, falls keine installiert ist Enabled Wählen Sie aus, ob Sie gefragt werden möchten, ob Docker Desktop oder Podman nicht installiert ist.
Aufforderung, dem ASP.NET Core SSL-Zertifikat zu vertrauen Enabled Wählen Sie, ob bei einem nicht vertrauenswürdigen localhost SSL-Zertifikat in einem ASP.NET Core-Projekt eine Aufforderung angezeigt werden soll.
Starten der Containerlaufzeit bei Bedarf Aufforderung Wenn Docker Desktop oder Podman nicht gestartet wird, wählen Sie aus, ob sie automatisch gestartet werden soll oder ob Sie dazu aufgefordert werden sollen.
Containerlaufzeit Auto Wählen Sie die Containerlaufzeit aus. Docker und Podman werden unterstützt. Wählen SieAuto aus, ob Visual Studio ermitteln soll, welche Laufzeit Sie verwenden.

Von Bedeutung

Wenn Sie trust ASP.NET Core SSL-Zertifikat auf Never festlegen und das localhost SSL-Zertifikat nicht vertrauenswürdig ist, schlagen HTTPS-Webanforderungen möglicherweise zur Laufzeit fehl. In diesem Fall Trust ASP.NET Core SSL-Zertifikat auf Mich fragen setzen, das Projekt ausführen, und an der Eingabeaufforderung das Vertrauen angeben.

Von Bedeutung

Wenn Sie die Aufforderung festlegen, ASP.NET Core SSL-Zertifikat auf "Nie " zu vertrauen, und das localhost SSL-Zertifikat nicht vertrauenswürdig ist, schlagen HTTPS-Webanforderungen möglicherweise zur Laufzeit fehl. In diesem Fall Zertifikat Vertrauensfrage ASP.NET Core SSL auf Mich fragen setzen, das Projekt ausführen, und an der Eingabeaufforderung das Vertrauen angeben.

Einstellungen für Einzelprojekt oder Docker Compose

Die Einstellungen für Container Tools Einzelprojekt und Docker Compose sind identisch.

Screenshot der Optionen für Visual Studio 2022-Containertools.

In der folgenden Tabelle werden die Einstellungen "Einzelnes Projekt " und "Docker Verfassen " beschrieben:

Konfiguration Standardwert BESCHREIBUNG
Erforderliche Docker-Images beim Öffnen des Projekts mithilfe von Pull übertragen Richtig Gibt an, ob beim Laden eines Containerprojekts ein Docker-Pullvorgang im Hintergrund gestartet werden soll. Erforderliche Bilder werden heruntergeladen oder befinden sich im Download, wenn Sie bereit sind, Ihren Code auszuführen. Wenn Sie nur den Code durchsuchen möchten, können Sie auf "False" festlegen, um das Herunterladen von Containerimages zu vermeiden, die Sie nicht benötigen.
Abrufen aktualisierter Docker-Images beim Öffnen des Projekts .NET Core-Projekte Ob oder auf welchen Projekten ein Docker-Pull für alle Images im Projekt ausgeführt werden soll, um die neuesten Updates zu erhalten.
Container beim Öffnen des Projekts ausführen Richtig Gibt an, ob ein Container beim Laden eines Containerprojekts erstellt werden soll, damit er beim Erstellen und Ausführen bereit ist. Wenn Sie lieber steuern möchten, wann ihr Container erstellt wird, legen Sie den Wert auf "False" fest.
Entfernen von Containern beim Schließen des Projekts Richtig Gibt an, ob Container für Ihre Lösung nach dem Schließen der Projektmappe oder dem Schließen von Visual Studio entfernt werden sollen.
Ausführen eines Diensts in Containern zum Aktivieren der Azure-Authentifizierung Richtig Für Visual Studio, Version 17.6 oder höher, ob ein Tokenproxydienst im Container installiert und ausgeführt werden soll, um die Azure-Authentifizierung zu aktivieren. Mit diesem Dienst können Ihre Apps Azure-Dienste während der Entwicklung verwenden. Weitere Informationen finden Sie im Abschnitt " Azure-Authentifizierung konfigurieren ".
Ausführen eines Diensts in Containern zum Aktivieren des Hot Reload Richtig Für Visual Studio, Version 17.7 und höher, ob der Hot Reload-Dienst installiert und ausgeführt werden soll. Dieser Dienst unterstützt nur die Ausführung ohne Debugging , STRG+F5.

Containerprojekteinstellungen

Die folgenden Einstellungen im Abschnitt " Container-Warmup " steuern, wie Visual Studio die Leistung optimiert, indem Dienste gestartet und Bilder vor der erwarteten Verwendung vorbereitet werden.

Konfiguration Standardwert BESCHREIBUNG
Abrufen erforderlicher Bilder im geöffneten Projekt Enabled Gibt an, ob beim Laden eines Containerprojekts ein Docker-Pullvorgang im Hintergrund gestartet werden soll. Erforderliche Bilder werden heruntergeladen oder befinden sich im Download, wenn Sie bereit sind, Ihren Code auszuführen. Wenn Sie nur den Code durchsuchen möchten, können Sie auf "False" festlegen, um das Herunterladen von Containerimages zu vermeiden, die Sie nicht benötigen.
Container beim Öffnen des Projekts ausführen Richtig Gibt an, ob ein Container beim Laden eines Containerprojekts erstellt werden soll, damit er beim Erstellen und Ausführen bereit ist. Wenn Sie lieber steuern möchten, wann ihr Container erstellt wird, legen Sie den Wert auf "False" fest.
Entfernen von Containern beim Schließen des Projekts Richtig Gibt an, ob Container für Ihre Lösung nach dem Schließen der Projektmappe oder dem Schließen von Visual Studio entfernt werden sollen.

Die folgenden Einstellungen werden im Debugabschnitt angezeigt:

Konfiguration Standardwert BESCHREIBUNG
Ausführen eines Diensts in Containern zum Aktivieren der Azure-Authentifizierung Enabled Gibt an, ob ein Tokenproxydienst im Container installiert und ausgeführt werden soll, um die Azure-Authentifizierung zu aktivieren. Mit diesem Dienst können Ihre Apps Azure-Dienste während der Entwicklung verwenden. Weitere Informationen finden Sie im Abschnitt " Azure-Authentifizierung konfigurieren ".
Ausführen eines Diensts in Containern zum Aktivieren des Hot Reload Enabled Gibt an, ob der Hot Reload-Dienst installiert und ausgeführt werden soll. Dieser Dienst unterstützt nur die Ausführung ohne Debugging , STRG+F5.
Verwenden eines .NET-basierten Einstiegspunkts Enabled Verwenden Sie einen dotnet-basierten Einstiegspunkt, um Distroless Linux zu unterstützen. Wenn deaktiviert, wird tail verwendet.

Containerfenstereinstellungen

Die Containerfenstereinstellungen gelten für das Fenster "Container " in der Visual Studio-IDE, in dem Informationen zu Docker-Containern und -Images angezeigt werden. Weitere Informationen finden Sie unter Verwenden des Fensters "Container".

Screenshot der Optionen für Visual Studio-Containertools mit den einstellungen, die für das Containerfenster verfügbar sind.

In der folgenden Tabelle werden die Containerfenstereinstellungen beschrieben:

Konfiguration Standardwert BESCHREIBUNG
Vor dem Löschen von Containern bestätigen Immer Ob beim Aufräumen ungenutzter Container aufgefordert werden soll.
Vor dem Löschen von Bildern bestätigen Immer Ob beim Aufräumen nicht verwendeter Bilder aufgefordert werden soll.
Vor dem Entfernen eines Containers bestätigen Immer Ob beim Entfernen eines Containers aufgefordert werden soll.
Vor dem Entfernen eines Bilds bestätigen Immer Ob beim Entfernen eines Bildes aufgefordert werden soll.
Bestätigen, bevor eine große Anzahl von Bildern ausgeführt wird Immer Ob vor dem Start von Containern für mehr als zehn Bilder zugleich aufgefordert werden soll.
Zeichenfolgenformat anzeigen, das im Containerfenster verwendet werden soll Leer Ein Anzeigezeichenfolgenformat, das im Containerfenster verwendet werden soll, mit Unterstützung für {ContainerName}, {ImageName}, {ProjectName} und {ContainerID}-Token.
Gruppieren von Containern nach dem Docker Compose-Projekt Immer Gibt an, ob Container nach dem Docker Compose-Projekt gruppiert werden sollen, an dem sie beteiligt sind.

Konfigurieren der Azure-Authentifizierung

Wenn Ihre App Azure-Dienste verwendet, benötigt sie entsprechende Anmeldeinformationen, um sich bei Azure-Diensten zu authentifizieren, wenn sie in einem Container ausgeführt wird. Normalerweise können Sie Ihre eigenen Azure-Anmeldeinformationen während der Entwicklung verwenden, aber um sie in der Containerumgebung auszuführen, erfordert die containerisierte App die Anmeldeinformationen, die sie in der Produktion verwendet.

Visual Studio 2022, Version 17.6 und höher, stellt einen Tokenproxydienst in Ihren Einzelcontainer- und Docker Compose-Projekten bereit, um Ihre Apps und Dienste bei der Authentifizierung in Azure zu unterstützen. Das Feature erfordert Azure Identity 1.9.0 oder höher.

Wenn dieser Dienst aktiviert ist, können Sie die meisten Azure-Dienste automatisch innerhalb des Containers verwenden, ohne dass eine zusätzliche Konfiguration oder Einrichtung hinzugefügt wurde. Ihr Code kann DefaultAzureCredential und VisualStudioCredential verwenden, um sich genauso wie außerhalb eines Containers mit Azure-Diensten zu authentifizieren. Weitere Informationen finden Sie in der Azure Identity 1.9.0-INFODATEI.

Um dieses Feature zu deaktivieren, legen Sie "Dienst in Containern ausführen" fest, um die Azure-Authentifizierung in den Einstellungen "Containertoolssingle Project" oder "Docker Compose" auf "False" zu aktivieren.

Vorsicht

Die Verwendung des Tokenproxys und das Aktivieren bestimmter Diagnoseprotokolle stellen ein potenzielles Sicherheitsproblem dar. Diese Protokolle könnten Authentifizierungsanmeldeinformationen im Klartext offenlegen. Die folgenden Umgebungsvariablen aktivieren diese Protokolle:

  • Bei einzelnen Containerprojekten, MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED, mit Anmeldung von %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Für Docker-Compose-Projekte, MS_VS_DOCKER_TOOLS_LOGGING_ENABLED, mit Anmeldung von %tmp%\Microsoft.VisualStudio.DockerCompose.Tools.

Containerfenstereinstellungen

Die Containerfenstereinstellungen gelten für das Fenster "Container " in der Visual Studio-IDE, in dem Informationen zu Docker-Containern und -Images angezeigt werden. Weitere Informationen finden Sie unter Verwenden des Fensters "Container".

In der folgenden Tabelle werden die Containerfenstereinstellungen beschrieben:

Konfiguration Standardwert BESCHREIBUNG
Vor dem Löschen von Containern bestätigen Enabled Ob beim Aufräumen ungenutzter Container aufgefordert werden soll.
Vor dem Löschen von Bildern bestätigen Enabled Ob beim Aufräumen nicht verwendeter Bilder aufgefordert werden soll.
Vor dem Entfernen eines Containers bestätigen Enabled Ob beim Entfernen eines Containers aufgefordert werden soll.
Vor dem Entfernen eines Bilds bestätigen Enabled Ob beim Entfernen eines Bildes aufgefordert werden soll.
Bestätigen, bevor eine große Anzahl von Bildern ausgeführt wird Enabled Ob vor dem Start von Containern für mehr als zehn Bilder zugleich aufgefordert werden soll.
Zeichenfolgenformat anzeigen, das im Containerfenster verwendet werden soll Leer Ein Anzeigezeichenfolgenformat, das im Containerfenster verwendet werden soll, mit Unterstützung für {ContainerName}, {ImageName}, {ProjectName} und {ContainerID}-Token.
Gruppieren von Containern nach dem Docker Compose-Projekt Enabled Gibt an, ob Container nach dem Docker Compose-Projekt gruppiert werden sollen, an dem sie beteiligt sind.

Konfigurieren der Azure-Authentifizierung

Wenn Ihre App Azure-Dienste verwendet, benötigt sie entsprechende Anmeldeinformationen, um sich bei Azure-Diensten zu authentifizieren, wenn sie in einem Container ausgeführt wird. Normalerweise können Sie Ihre eigenen Azure-Anmeldeinformationen während der Entwicklung verwenden, aber um sie in der Containerumgebung auszuführen, erfordert die containerisierte App die Anmeldeinformationen, die sie in der Produktion verwendet.

Visual Studio stellt einen Tokenproxydienst in Ihren Einzelcontainer- und Compose-Projekten bereit und führt ihn aus, um Ihre Apps und Dienste in Azure bei der Authentifizierung zu unterstützen. Das Feature erfordert Azure Identity 1.9.0 oder höher.

Wenn dieser Dienst aktiviert ist, können Sie die meisten Azure-Dienste automatisch innerhalb des Containers verwenden, ohne dass eine zusätzliche Konfiguration oder Einrichtung hinzugefügt wurde. Ihr Code kann DefaultAzureCredential und VisualStudioCredential verwenden, um sich genauso wie außerhalb eines Containers mit Azure-Diensten zu authentifizieren. Weitere Informationen finden Sie in der Azure Identity 1.9.0-INFODATEI.

Um dieses Feature zu deaktivieren, legen Sie "Ausführen eines Diensts in Containern" fest, um die Azure-Authentifizierung auf "False" im Unterabschnitt "Debuggen" der Containertools-Projekteinstellungen zu aktivieren.

Vorsicht

Die Verwendung des Tokenproxys und das Aktivieren bestimmter Diagnoseprotokolle stellen ein potenzielles Sicherheitsproblem dar. Diese Protokolle könnten Authentifizierungsanmeldeinformationen im Klartext offenlegen. Die folgenden Umgebungsvariablen aktivieren diese Protokolle:

  • Bei einzelnen Containerprojekten, MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED, mit Anmeldung von %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Für Docker-Compose-Projekte, MS_VS_DOCKER_TOOLS_LOGGING_ENABLED, mit Anmeldung von %tmp%\Microsoft.VisualStudio.DockerCompose.Tools.