Condividi tramite


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.

Nota

È possibile usare queste istruzioni per connettersi a Docker Linux in esecuzione in WSL tramite SSH, ma l'istanza WSL deve prima eseguire un server SSH. Ad esempio, è possibile installare Open SSH Server (ad esempio: sudo apt-get install openssh-server), configurare il server modificando il file di configurazione (ad esempio: /etc/ssh/sshd_config) e quindi avviando il server (ad esempio: sudo service ssh start).

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 Tipo di connessione su Docker (contenitore Linux).Set the Connection type to Docker (Linux Container).

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

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

  3. Selezionare Trova per impostare la destinazione connessione 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 Connetti a un sistema remoto.
          Screenshot di Connetti a un sistema remoto.
        2. Immettere le informazioni di connessione necessarie e scegliere Connetti.
        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. Il tipo di connessione è impostato su Docker (contenitore Linux) e viene selezionato il processo dotnet.

    Screenshot della finestra di dialogo Connetti a processo in Visual Studio. Il tipo di connessione è 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 Tipo di connessione su Docker (contenitore Windows).Set the Connection type to Docker (Windows Container).

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

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

  3. Selezionare Trova per impostare la destinazione connessione 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. Il tipo di connessione è impostato su Docker (contenitore Windows) e viene selezionato il processo di dotnet.exe.

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