Anfügen an einen Prozess, der auf einem Docker-Container ausgeführt wird

Sie können Apps debuggen, die entweder in einem Windows Docker-Container oder einem Linux .NET Core Docker-Container mit Visual Studio ausgeführt werden.

Ab Visual Studio 18.10 können Sie auch sich an Prozesse in Podman-Containern anfügen.

Voraussetzungen

Wenn sie noch nicht auf dem Linux-Server vorhanden ist, müssen Sie SSH-Server installieren, entzippen und mit curl oder wget installieren. Auf Ubuntu können Sie dies beispielsweise tun, indem Sie Folgendes ausführen:

sudo apt-get install openssh-server unzip curl

Das Secure File Transfer Protocol (SFTP) muss ebenfalls aktiviert sein. Die meisten SSH-Verteilungen installieren und aktivieren SFTP standardmäßig, aber das ist nicht immer der Fall.

Anfügen an einen Prozess, der auf einem Linux Docker-Container ausgeführt wird

Sie können den Visual Studio-Debugger an einen Prozess anfügen, der in einem Linux .NET Core Docker-Container auf Ihrem lokalen oder Remotecomputer ausgeführt wird, mithilfe des Dialogfelds An Prozess anfügen.

Wichtig

Um dieses Feature zu verwenden, benötigen Sie lokalen Zugriff auf den Quellcode.

Anmerkung

Sie können diese Anweisungen verwenden, um eine Verbindung zu Linux Docker herzustellen, das in WSL über SSH läuft, aber Ihre WSL-Instanz muss zuerst einen SSH-Server betreiben. Sie können z. B. Open SSH-Server (z. B. sudo apt-get install openssh-server) installieren, den Server konfigurieren, indem Sie die Konfigurationsdatei bearbeiten (z. B.: /etc/ssh/sshd_config), und starten Sie dann den Server (z. B. sudo service ssh start).

So fügen Sie einen laufenden Prozess in einem Linux Docker-Container an:

  1. Wählen Sie in Visual Studio Debuggen > An Den Prozess anhängen (STRG+ALT+P) aus,, um das Dialogfeld An Den Prozess anfügen zu öffnen.

  2. Legen Sie den Verbindungstyp auf Docker (Linux-Container)fest.

    Screenshot des Dialogfelds

  3. Wählen Sie Suchen... aus, um das Verbindungsziel über das Dialogfeld Docker-Container auswählen festzulegen.

    Sie können einen Docker-Containerprozess entweder lokal oder remote debuggen.

    • So debuggen Sie einen Docker-Containerprozess lokal:

      1. Legen Sie Docker CLI-Host auf lokalen Computerfest.

      2. Wählen Sie einen aktiven Container zum Anfügen aus der Liste aus, und klicken Sie auf OK.

        Screenshot des ausgewählten Docker-Container-Menüs.

    • So debuggen Sie einen Docker-Containerprozess remote:

      Sie können eine Verbindung mit einem laufenden Prozess in einem Docker-Container herstellen, indem Sie eine von zwei Optionen verwenden. Die erste Option zur Verwendung von SSH ist ideal, wenn Auf Ihrem lokalen Computer keine Docker-Tools installiert sind. Wenn Sie Docker-Tools lokal installiert haben und über einen Docker-Daemon verfügen, der für die Annahme von Remoteanforderungen konfiguriert ist, probieren Sie die zweite Option unter Verwendung eines Docker-Daemons aus.

      • So stellen Sie eine Verbindung mit einem Remotecomputer über SSH her:

        1. Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.

          Screenshot: Herstellen einer Verbindung mit einem Remotesystem

        2. Geben Sie erforderliche Verbindungsinformationen ein, und wählen Sie Connectaus.

        3. Nachdem Sie eine Verbindung mit der SSH hergestellt haben, wählen Sie einen ausgeführten Container aus, an den eine Verbindung hergestellt werden soll, und wählen Sie dann OKaus.

      • So legen Sie das Ziel auf einen Remotecontainer fest, der einen Prozess über einen Docker-Daemonausführt:

        1. Geben Sie die Adresse des Daemons (d. h. über TCP, IP usw.) unter Docker-Host (Optional)an, und wählen Sie dann Aktualisieren.
        2. Nachdem sie erfolgreich eine Verbindung mit dem Daemon hergestellt haben, wählen Sie einen ausgeführten Container aus, an den eine Verbindung hergestellt werden soll, und wählen Sie dann OKaus.
  4. Wählen Sie den entsprechenden Containerprozess aus der Liste der Verfügbaren Prozesse aus, und wählen Sie Anfügen aus, um mit dem Debuggen Ihres C#-Containerprozesses in Visual Studio zu beginnen!

    Screenshot des Dialogfelds

Anfügen an einen Prozess, der auf einem Windows Docker-Container ausgeführt wird

Sie können den Visual Studio-Debugger an einen Prozess anfügen, der in einem Windows Docker-Container auf Ihrem lokalen Computer ausgeführt wird, mithilfe des Dialogfelds An Prozess anfügen.

Wichtig

Um dieses Feature mit einem .NET Core-Prozess zu verwenden, müssen Sie die .NET Core Cross-Platform Development-Workload installieren und lokalen Zugriff auf den Quellcode haben.

So fügen Sie einen laufenden Prozess in einem Windows Docker-Container an:

  1. Wählen Sie in Visual Studio Debuggen > An den Prozess anfügen (oder STRG+ALT+P) aus, um das Dialogfeld An den Prozess anfügen zu öffnen.

  2. Legen Sie den Verbindungstyp auf Docker (Windows-Container)fest.

    Screenshot des Dialogfelds „An Prozess anfügen“ in Visual Studio, das den „Verbindungstyp Docker (Windows-Container)“ zeigt

  3. Wählen Sie Suchen... aus, um das Verbindungsziel mithilfe des Dialogfelds Docker-Container Auswählen festzulegen.

    Wichtig

    Der Zielprozess muss dieselbe Prozessorarchitektur aufweisen wie der Docker Windows-Container, auf dem er ausgeführt wird.

    Das Festlegen des Ziels auf einen Remotecontainer über SSH ist derzeit nicht verfügbar und kann nur mit einem Docker-Daemon ausgeführt werden.

    So legen Sie das Ziel auf einen Remotecontainer fest, der einen Prozess über einen Docker-Daemonausführt:

    1. Geben Sie die Daemon-Adresse (d. h. über TCP, IP usw.) unter Docker-Host (Optional) an, und klicken Sie auf Aktualisieren.

    2. Nachdem sie erfolgreich eine Verbindung mit dem Daemon hergestellt haben, wählen Sie einen ausgeführten Container aus, an den eine Verbindung hergestellt werden soll, und wählen Sie dann OKaus.

  4. Wählen Sie den entsprechenden Containerprozess aus der Liste der Verfügbaren Prozesse aus, und wählen Sie Anfügen aus, um mit dem Debuggen des C#-Containerprozesses zu beginnen.

    Screenshot des Dialogfelds

Anfügen an einen Prozess, der in einem Podman-Container ausgeführt wird

Ab Visual Studio 18.10 ermittelt An Prozess anfügen Podman-Container zusammen mit Docker-Containern. Sie können sowohl .NET- als auch C++-Prozesse in Podman-Containern ohne zusätzliche Konfiguration für podman discovery debuggen.

  1. Starten Sie Ihren Podman-Container.
  2. Wählen Sie in Visual Studio Debug> aus.
  3. Legen Sie den Verbindungstyp auf Podman fest, und wählen Sie Suchen aus. Ihre ausgeführten Podman-Container werden automatisch angezeigt.
  4. Wählen Sie den Container aus, wählen Sie den Prozess unter Verfügbare Prozesse aus und wählen Sie Anfügen.

Informationen zu Quellcode- und Symbolanforderungen beim Anfügen des Debuggers finden Sie unter Verwenden von Debuggerfeatures.