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 .

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

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

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

    Selezionare il menu Contenitore Docker

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

    Nota

    Esistono due opzioni per la connessione remota a un processo in esecuzione in un contenitore Docker. 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.

    1. Per connettersi a un computer remoto tramite SSH:

      1. Selezionare Aggiungi... per connettersi a un sistema remoto.
        Connessione a un sistema remoto
      2. Selezionare un contenitore in esecuzione a cui connettersi dopo la connessione a SSH o daemon e fare clic su OK.
    2. 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 fare clic sul collegamento aggiorna.
      2. Selezionare un contenitore in esecuzione a cui connettersi dopo la connessione al daemon e fare clic su OK.
  3. 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.

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 .

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

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

  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 fare clic sul collegamento aggiorna.

    2. Selezionare un contenitore in esecuzione a cui connettersi dopo la connessione al daemon e 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.