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.

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

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

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

  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 Lokaler Computer fest.

      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.

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

    • 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

        1. Wählen Sie Hinzufügen... aus, um eine Verbindung mit einem Remotesystem herzustellen.
          Screenshot: Herstellen einer Verbindung mit einem Remotesystem
          Screenshot: Herstellen einer Verbindung mit einem Remotesystem
        2. Geben Sie erforderliche Verbindungsinformationen ein, und wählen Sie Verbinden aus.
        3. Nachdem Sie sich mit dem SSH verbunden haben, wählen Sie einen aktiven Container zum Anfügen aus, und wählen Sie dann OK.
      • 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 Aktualisieren.
        2. Nachdem die Verbindung zum Daemon erfolgreich hergestellt wurde, wählen Sie einen laufenden Container zum Anfügen aus, und wählen Sie dann OK.
  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 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.

    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.

  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

    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 ü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 Aktualisieren.

    2. Nachdem die Verbindung zum Daemon erfolgreich hergestellt wurde, wählen Sie einen laufenden Container zum Anfügen aus, und wählen Sie dann OK.

  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.

    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.