Anfügen an einen in einem Docker-Container ausgeführten Prozess
Sie können Apps, die entweder in einem Docker-Container unter Windows oder einen Docker-Container für .NET Core unter Linux ausgeführt werden, mithilfe von Visual Studio debuggen.
Voraussetzungen
Wenn noch nicht geschehen, müssen Sie den SSH-Server auf dem Linux-Server installieren. Verwenden Sie zum Entpacken und Installieren das curl- oder wget-Tool. Unter Ubuntu können Sie beispielsweise Folgendes ausführen:
sudo apt-get install openssh-server unzip curl
Das Secure File Transfer Protocol (SFTP) muss ebenfalls aktiviert sein. Die meisten SSH-Distributionen installieren und aktivieren SFTP standardmäßig, aber das ist nicht immer der Fall.
Anfügen an einen Prozess, der in einem Linux-Docker-Container ausgeführt wird
Sie können den Visual Studio-Debugger an einen Prozess anfügen, der in einem .NET Core Linux-Docker-Container auf Ihrem lokalen oder Remotecomputer ausgeführt wird, indem Sie das Dialogfeld An den Prozess anhängen verwenden.
Wichtig
Um dieses Feature zu verwenden, benötigen Sie lokalen Zugriff auf den Quellcode.
Hinweis
Sie können diese Anweisungen verwenden, um Linux Docker anzufügen, die in WSL über SSH ausgeführt werden, aber Ihre WSL-Instanz muss zuerst einen SSH-Server ausführen. 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 an einen aktiven 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 anhängen 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 Lokaler Computer fest.
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 zu einem laufenden Prozess in einem Docker-Container herstellen, indem Sie eine von zwei Optionen verwenden. Die erste Option, die Verwendung von SSH, ist ideal, wenn Sie keine Docker-Tools auf Ihrem lokalen Computer installiert haben. Wenn Sie die Docker-Tools lokal installiert haben und Sie über einen Docker-Daemon verfügen, der so konfiguriert ist, dass er Remoteanforderungen akzeptiert, probieren Sie die zweite Option mit einem Docker-Daemon aus.
So stellen Sie über SSH eine Verbindung mit einem Remotecomputer her
- Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
- Geben Sie erforderliche Verbindungsinformationen ein, und wählen Sie Verbinden aus.
- Nachdem Sie sich mit dem SSH verbunden haben, wählen Sie einen aktiven Container zum Anfügen aus, und wählen Sie dann OK.
- Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
So legen Sie das Ziel auf einen Remote-Container fest, der einen Prozess über einen Docker-Daemon ausführt:
- Geben Sie die Daemon-Adresse (d. h. über TCP, IP usw.) unter Docker-Host (Optional) an, und klicken Sie auf Aktualisieren.
- Nachdem die Verbindung zum Daemon erfolgreich hergestellt wurde, wählen Sie einen laufenden Container zum Anfügen aus, und wählen Sie dann OK.
Wählen Sie den entsprechenden Containerprozess aus der Liste der Verfügbaren Prozesse und dann die Option Anfügen aus, um mit dem Debuggen Ihres C#-Containerprozesses in Visual Studio zu beginnen.
Anfügen an einen Prozess, der in 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, indem Sie das Dialogfeld An den Prozess anhängen verwenden.
Wichtig
Um dieses Feature mit einem .NET Core-Prozess nutzen zu können, müssen Sie die Workload für die plattformübergreifende .NET Core-Entwicklung installieren und über lokalen Zugriff auf den Quellcode verfügen.
So fügen Sie an einen aktiven Prozess in einem Windows-Docker-Container an
Wählen Sie in Visual Studio Debuggen > An den Prozess anhängen (oder STRG+ALT+P) aus, um das Dialogfeld An den Prozess anhängen zu öffnen.
Legen Sie den Verbindungstyp auf Docker (Windows-Container) fest.
Wählen Sie Suchen... aus, um das Verbindungsziel über das Dialogfeld Docker-Container auswählen festzulegen.
Wichtig
Der Zielprozess muss dieselbe Prozessorarchitektur aufweisen wie der Windows-Docker-Container, in dem er ausgeführt wird.
Das Festlegen des Ziels auf einen Remotecontainer über SSH ist derzeit nicht verfügbar und kann nur über einen Docker-Daemon erfolgen.
So legen Sie das Ziel auf einen Remote-Container fest, der einen Prozess über einen Docker-Daemon ausführt:
Geben Sie die Daemon-Adresse (d. h. über TCP, IP usw.) unter Docker-Host (Optional) an, und klicken Sie auf Aktualisieren.
Nachdem die Verbindung zum Daemon erfolgreich hergestellt wurde, wählen Sie einen laufenden Container zum Anfügen aus, und wählen Sie dann OK.
Wählen Sie den entsprechenden Containerprozess aus der Liste der Verfügbaren Prozesse und dann die Option Anfügen aus, um mit dem Debuggen Ihres C#-Containerprozesses zu beginnen.