Share via


Connettersi a un processo in esecuzione in un contenitore Docker

È possibile eseguire il debug delle app in esecuzione in un contenitore Docker di Windows o in un contenitore Docker linux .NET Core usando Visual Studio.

Prerequisiti

Se non è già presente nel server Linux, è necessario installare il server SSH, decomprimere e installare con curl o wget. Ad esempio, in Ubuntu è possibile eseguire questa operazione eseguendo:

sudo apt-get install openssh-server unzip curl

È necessario abilitare anche SFTP (Secure File Transfer Protocol). La maggior parte delle distribuzioni SSH installa e abilita SFTP per impostazione predefinita, ma questo non è sempre il caso.

Connettersi a un processo in esecuzione in un contenitore Docker Linux

È possibile collegare il debugger di Visual Studio a un processo in esecuzione in un contenitore Docker linux .NET Core nel computer locale o remoto usando la finestra di dialogo Connetti a processo .

Importante

Per usare questa funzionalità, è necessario avere accesso locale al codice sorgente.

Per connettersi a un processo in esecuzione in un contenitore Docker Linux:

  1. In Visual Studio selezionare Debug > Connetti a processo (CTRL+ALT+P) per aprire la finestra di dialogo Connetti a processo .

  2. Impostare il tipo di Connessione ion su Docker (contenitore Linux).

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio che mostra un tipo di Connessione ion docker (contenitore Linux).

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio che mostra un tipo di Connessione ion docker (contenitore Linux).

  3. Selezionare Trova per impostare la destinazione Connessione ion tramite la finestra di dialogo Seleziona contenitore Docker.

    È possibile eseguire il debug di un processo del contenitore Docker in locale o in remoto.

    • Per eseguire il debug di un processo del contenitore Docker in locale:

      1. Impostare l'host dell'interfaccia della riga di comando di Docker su Computer locale.

      2. Selezionare un contenitore in esecuzione a cui connettersi dall'elenco e fare clic su OK.

        Screenshot della selezione del menu Contenitore Docker.

        Screenshot della selezione del menu Contenitore Docker.

    • Per eseguire il debug remoto di un processo del contenitore Docker:

      È possibile connettersi a un processo in esecuzione in un contenitore Docker usando una delle due opzioni. La prima opzione, per usare SSH, è ideale se non sono installati strumenti Docker nel computer locale. Se sono installati gli strumenti Docker in locale e si dispone di un daemon Docker configurato per accettare richieste remote, provare la seconda opzione usando un daemon Docker.

      • Per connettersi a un computer remoto tramite SSH:

        1. Selezionare Aggiungi... per connettersi a un sistema remoto.
          Screenshot di Connessione in un sistema remoto.
          Screenshot di Connessione in un sistema remoto.
        2. Immettere le informazioni di connessione necessarie e scegliere Connessione.
        3. Dopo la connessione a SSH, selezionare un contenitore in esecuzione a cui connettersi e quindi scegliere OK.
      • Per impostare la destinazione su un contenitore remoto che esegue un processo tramite un daemon Docker:

        1. Specificare l'indirizzo del daemon (ovvero tramite TCP, IP e così via) in Host Docker (facoltativo) e quindi scegliere Aggiorna.
        2. Dopo la connessione al daemon, selezionare un contenitore in esecuzione a cui connettersi e quindi scegliere OK.
  4. Scegliere il processo contenitore corrispondente dall'elenco Processi disponibili e selezionare Connetti per avviare il debug del processo del contenitore C# in Visual Studio.

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio. Connessione tipo è impostato su Docker (contenitore Linux) e viene selezionato il processo dotnet.

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio. Connessione tipo è impostato su Docker (contenitore Linux) e viene selezionato il processo dotnet.

Connettersi a un processo in esecuzione in un contenitore Docker di Windows

È possibile collegare il debugger di Visual Studio a un processo in esecuzione in un contenitore Docker di Windows nel computer locale usando la finestra di dialogo Connetti a processo .

Importante

Per usare questa funzionalità con un processo .NET Core, è necessario installare il carico di lavoro Sviluppo multipiattaforma .NET Core e avere accesso locale al codice sorgente.

Per connettersi a un processo in esecuzione in un contenitore Docker di Windows:

  1. In Visual Studio selezionare Debug > Connetti a processo (o CTRL+ALT+P) per aprire la finestra di dialogo Connetti a processo .

  2. Impostare il tipo di Connessione ion su Docker (contenitore Windows).Set the Connessione ion type to Docker (Windows Container).

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio che mostra un tipo di Connessione ion docker (contenitore Windows).

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio che mostra un tipo di Connessione ion docker (contenitore Windows).

  3. Selezionare Trova per impostare la destinazione Connessione ion usando la finestra di dialogo Seleziona contenitore Docker.

    Importante

    Il processo di destinazione deve avere la stessa architettura del processore del contenitore Docker Windows in cui è in esecuzione.

    L'impostazione della destinazione su un contenitore remoto tramite SSH non è attualmente disponibile e può essere eseguita solo usando un daemon Docker.

    Per impostare la destinazione su un contenitore remoto che esegue un processo tramite un daemon Docker:

    1. Specificare l'indirizzo del daemon (ovvero tramite TCP, IP e così via) in Host Docker (facoltativo) e quindi scegliere Aggiorna.

    2. Dopo la connessione al daemon, selezionare un contenitore in esecuzione a cui connettersi e quindi scegliere OK.

  4. Scegliere il processo contenitore corrispondente dall'elenco Processi disponibili e selezionare Connetti per avviare il debug del processo del contenitore C#.

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio. Connessione tipo è impostato su Docker (contenitore Windows) e viene selezionato il processo di dotnet.exe.

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio. Connessione tipo è impostato su Docker (contenitore Windows) e viene selezionato il processo di dotnet.exe.