Freigeben über


Konfigurieren von Visual Studio-Containertools

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 Fordere mich auf Wählen Sie aus, ob Sie gefragt werden möchten, ob Docker Desktop nicht installiert ist.
Starten Von Docker Desktop bei Bedarf Fordere mich auf 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 Fordere mich auf 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 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 Fordere mich auf 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. Legen Sie in diesem Fall Trust ASP.NET Core SSL-Zertifikat auf Mich fragen fest, führen Sie Ihr Projekt aus, und geben Sie an der Eingabeaufforderung Ihr Vertrauen an.

Einstellungen für einzelnes Projekt- oder Docker Compose-Einstellungen

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
Abrufen der erforderlichen Docker-Images beim Öffnen eines Projekts 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.
Ausführen von Containern im geöffneten Projekt 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.
Container beim Schließen des Projekts entfernen 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.

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.
Ausführen von Containern im geöffneten Projekt 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.
Container beim Schließen des Projekts entfernen 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.

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 Sie zum Entfernen ungenutzter Container aufgefordert werden sollen.
Vor dem Löschen von Bildern bestätigen Immer Gibt an, ob Sie beim Entfernen nicht verwendeter Bilder aufgefordert werden sollen.
Vor dem Entfernen eines Containers bestätigen Immer Ob Sie dazu aufgefordert werden möchten, wenn Sie einen Container entfernen.
Vor dem Entfernen eines Bilds bestätigen Immer Gibt an, ob Sie beim Entfernen eines Bilds aufgefordert werden sollen.
Bestätigen, bevor eine große Anzahl von Bildern ausgeführt wird Immer Gibt an, ob Sie vor dem Starten von Containern von mehr als 10 Images gleichzeitig aufgefordert werden sollen.
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 und deren Anmeldung %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Für Docker-Compose-Projekte, bei denen MS_VS_DOCKER_TOOLS_LOGGING_ENABLED sich in %tmp%\Microsoft.VisualStudio.DockerCompose.Tools einloggen.

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 Sie zum Entfernen ungenutzter Container aufgefordert werden sollen.
Vor dem Löschen von Bildern bestätigen Enabled Gibt an, ob Sie beim Entfernen nicht verwendeter Bilder aufgefordert werden sollen.
Vor dem Entfernen eines Containers bestätigen Enabled Ob Sie dazu aufgefordert werden möchten, wenn Sie einen Container entfernen.
Vor dem Entfernen eines Bilds bestätigen Enabled Gibt an, ob Sie beim Entfernen eines Bilds aufgefordert werden sollen.
Bestätigen, bevor eine große Anzahl von Bildern ausgeführt wird Enabled Gibt an, ob Sie vor dem Starten von Containern von mehr als 10 Images gleichzeitig aufgefordert werden sollen.
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 Docker Compose-Projekten bereit und führt diesen aus, 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 und deren Anmeldung %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Für Docker-Compose-Projekte, bei denen MS_VS_DOCKER_TOOLS_LOGGING_ENABLED sich in %tmp%\Microsoft.VisualStudio.DockerCompose.Tools einloggen.