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.

So fügen Sie an einen aktiven 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 anhängen zu öffnen.

Screenshot des Dialogfelds „An Prozess anhängen“ in Visual Studio, das den Verbindungstyp „Docker (Linux-Container)“ zeigt

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

  2. 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 Lokaler Computer fest.
    2. Wählen Sie einen aktiven Container zum Anfügen aus der Liste aus, und klicken Sie auf OK.

    Auswählen des Menüs „Docker Container“

    B. So debuggen Sie einen Docker-Containerprozess remote:

    Hinweis

    Es gibt zwei Möglichkeiten, eine Remoteverbindung mit einem aktiven Prozess in einem Docker-Container herzustellen. 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.

    1. So stellen Sie über SSH eine Verbindung mit einem Remotecomputer her

      1. Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
        Herstellen einer Verbindung mit einem Remotesystem
      2. Wählen Sie einen aktiven Container zum Anfügen aus, nachdem die Verbindung mit SSH oder dem Daemon erfolgreich hergestellt wurde, und drücken Sie auf OK.
    2. So legen Sie das Ziel auf einen Remote-Container fest, der einen Prozess über einen Docker-Daemon ausführt:

      1. Geben Sie die Daemon-Adresse (d. h. über TCP, IP usw.) unter Docker-Host (Optional) an, und klicken Sie auf den Link „Aktualisieren“.
      2. Wählen Sie einen aktiven Container zum Anfügen aus, nachdem die Verbindung mit dem Daemon erfolgreich hergestellt wurde, und drücken Sie auf OK.
  3. 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.

    Screenshot des Dialogfelds „An Prozess anfügen“ in Visual Studio. Der Verbindungstyp ist auf Docker (Linux-Container) festgelegt, und der dotnet-Prozess ist ausgewählt.

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

  1. 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.

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

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

  3. 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:

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

    2. Wählen Sie einen aktiven Container zum Anfügen aus, nachdem die Verbindung mit dem Daemon erfolgreich hergestellt wurde, und wählen Sie „OK“ aus.

  4. 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.

    Screenshot des Dialogfelds „An Prozess anfügen“ in Visual Studio. Der Verbindungstyp ist auf Docker (Windows-Container) festgelegt, und der dotnet.exe-Prozess ist ausgewählt.