Compartilhar via


Anexar a um processo em execução em um contêiner do Docker

Você pode depurar aplicativos em execução em um Contêiner do Docker do Windows ou em um contêiner do Docker do .NET Core do Linux usando o Visual Studio.

Pré-requisitos

Se ele ainda não estiver presente no servidor Linux, você precisará instalar o servidor SSH, descompactar e instalar com curl ou wget. Por exemplo, no Ubuntu, você pode fazer isso executando:

sudo apt-get install openssh-server unzip curl

O Protocolo SFTP (Secure File Transfer Protocol) também deve estar habilitado. A maioria das distribuições SSH instala e habilita o SFTP por padrão, mas nem sempre é o caso.

Anexar a um processo em execução em um contêiner do Docker do Linux

Você pode anexar o depurador do Visual Studio a um processo em execução em um contêiner do Docker do .NET Core do Linux em seu computador local ou remoto usando a caixa de diálogo Anexar ao Processo.

Importante

Para usar esse recurso, você deve ter acesso local ao código-fonte.

Nota

Você pode usar essas instruções para conectar-se ao Docker no Linux executando no WSL via SSH, mas sua instância do WSL deve primeiro executar um servidor SSH. Por exemplo, você pode instalar o Open SSH Server (por exemplo: sudo apt-get install openssh-server), configurar o servidor editando o arquivo de configuração (por exemplo: /etc/ssh/sshd_config) e, em seguida, iniciar o servidor (por exemplo: sudo service ssh start).

Para anexar a um processo em execução em um contêiner do Docker linux:

  1. No Visual Studio, selecione Depurar > Anexar ao Processo (CTRL+ALT+P) para abrir a caixa de diálogo Anexar ao Processo.

  2. Defina o tipo de conexão para Docker (contêiner Linux) .

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio mostrando um Tipo de conexão do Docker (Contêiner do Linux).

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio mostrando um Tipo de conexão do Docker (Contêiner do Linux).

  3. Selecione Localizar... para definir o Destino de conexão usando a caixa de diálogo Selecionar Contêiner do Docker.

    Você pode depurar um processo de contêiner do Docker local ou remotamente.

    • Para depurar um processo de contêiner do Docker localmente:

      1. Defina o Host da CLI do Docker como Computador Local.

      2. Selecione um contêiner em execução para anexar a partir da lista e clique OK.

        Captura de tela do menu Selecionar Contêiner do Docker.

        Captura de tela do menu Selecionar Contêiner do Docker.

    • Para depurar remotamente um processo de contêiner do Docker:

      Você pode se conectar a um processo em execução em um contêiner do Docker usando uma das duas opções. A primeira opção, para usar o SSH, é ideal se você não tiver ferramentas do Docker instaladas em seu computador local. Se você tiver ferramentas do Docker instaladas localmente e tiver um daemon do Docker configurado para aceitar solicitações remotas, tente a segunda opção usando um daemon do Docker.

      • Para se conectar a um computador remoto por meio do SSH:

        1. Selecione Adicionar... para conectar a um sistema remoto.
          Captura de tela de Conectar-se a um sistema remoto.
          Captura de tela de Conectar-se a um sistema remoto.
        2. Insira as informações de conexão necessárias e escolha Conectar.
        3. Depois de se conectar ao SSH, selecione um contêiner em execução para anexar e escolha OK.
      • Para definir o destino para um contêiner remoto executando um processo por meio de um daemon do Docker :

        1. Especifique o endereço daemon (ou seja, usando TCP, IP e assim por diante) em Host do Docker (opcional) e escolha Atualizar.
        2. Depois de se conectar ao daemon com êxito, selecione um contêiner em execução para anexar e escolha OK.
  4. Escolha o processo de contêiner correspondente na lista de Processos disponíveis e selecione Anexar para iniciar a depuração do processo de contêiner C# no Visual Studio.

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio. O tipo de conexão é definido como Docker (Contêiner do Linux) e o processo dotnet está selecionado. de Menu de Anexação do Docker do Linux concluído

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio. O tipo de conexão é definido como Docker (Contêiner do Linux) e o processo dotnet está selecionado.

Anexar a um processo em execução em um contêiner do Windows Docker

Você pode anexar o depurador do Visual Studio a um processo em execução em um contêiner do Windows Docker em seu computador local usando a caixa de diálogo Anexar ao Processo.

Importante

Para usar esse recurso com um processo do .NET Core, instale a carga de trabalho de Desenvolvimento Multiplataforma do .NET Core e tenha acesso local ao código-fonte.

Para anexar a um processo em execução em um contêiner do Windows Docker:

  1. No Visual Studio, selecione Depurar > Anexar ao Processo (ou CTRL+ALT+P) para abrir a caixa de diálogo Anexar ao Processo.

  2. Defina o Tipo de conexão como Docker (Contêiner do Windows).

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio mostrando um Tipo de conexão do Docker (Contêiner do Windows).

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio mostrando um Tipo de conexão do Docker (Contêiner do Windows).

  3. Selecione Localizar... para definir o Destino de conexão usando a caixa de diálogo Selecionar Contêiner do Docker.

    Importante

    O processo de destino deve ter a mesma arquitetura de processador que o contêiner do Docker Windows em que está em execução.

    A configuração do destino para um contêiner remoto por meio do SSH está indisponível no momento e só pode ser feita usando um daemon do Docker.

    Para definir o destino para um contêiner remoto executando um processo por meio de um daemon do Docker :

    1. Especifique o endereço do daemon (por exemplo, via TCP, IP, etc.) em host do Docker (Opcional) e depois escolha Atualizar.

    2. Depois de se conectar ao daemon com êxito, selecione um contêiner em execução para anexar e escolha OK.

  4. Escolha o processo de contêiner correspondente na lista de Processos disponíveis e selecione Anexar para iniciar a depuração do processo de contêiner C#.

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio. O tipo de conexão é definido como Docker (Contêiner do Windows) e o processo dotnet.exe está selecionado.

    Captura de tela da caixa de diálogo Anexar ao Processo no Visual Studio. O tipo de conexão é definido como Docker (Contêiner do Windows) e o processo dotnet.exe está selecionado.