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.
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:
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.
Legen Sie den Verbindungstyp auf Docker (Linux-Container)fest.
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:
Legen Sie Docker CLI-Host auf lokalen Computerfest.
Wählen Sie einen aktiven Container zum Anfügen aus der Liste aus, und klicken Sie auf OK.
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:
- Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
- Geben Sie erforderliche Verbindungsinformationen ein, und wählen Sie Connectaus.
- 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.
- Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
So legen Sie das Ziel auf einen Remotecontainer fest, der einen Prozess über einen Docker-Daemonausführt:
- Geben Sie die Adresse des Daemons (d. h. über TCP, IP usw.) unter Docker-Host (Optional)an, und wählen Sie dann Aktualisieren.
- 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.
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!
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:
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.
Legen Sie den Verbindungstyp auf Docker (Windows-Container)fest.
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:
Geben Sie die Daemonadresse (d. h. über TCP, IP usw.) unter Docker-Host (Optional) an, und wählen Sie dann Aktualisieren aus.
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.
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.