Compartir a través de


Asociación a procesos que se ejecutan en contenedores de Docker

Con Visual Studio, puede depurar aplicaciones que se ejecutan en un contenedor de Docker en Windows o en un contenedor de Docker de .NET Core en Linux.

Requisitos previos

Si aún no está presente en el servidor Linux, debe instalar el servidor SSH, descomprimirlo e instalarlo con curl o wget. Por ejemplo, en Ubuntu puede hacerlo mediante la ejecución de:

sudo apt-get install openssh-server unzip curl

El Secure File Transfer Protocol (SFTP) también debe estar habilitado. La mayoría de las distribuciones SSH instalan y habilitan SFTP de forma predeterminada, pero no siempre es así.

Asociación a un proceso que se ejecuta en un contenedor de Docker de Linux

Puede asociar el depurador de Visual Studio a un proceso que se ejecuta en un contenedor de Docker de .NET Core de Linux en el equipo local o remoto mediante el cuadro de diálogo Asociar al proceso.

Importante

Para usar esta característica, debe tener acceso local al código fuente.

Nota:

Puede usar estas instrucciones para asociar a Docker de Linux que se ejecuta en WSL a través de SSH, pero la instancia de WSL debe ejecutar primero un servidor SSH. Por ejemplo, puede instalar Open SSH Server (por ejemplo: sudo apt-get install openssh-server), configure el servidor editando el archivo de configuración (por ejemplo: /etc/ssh/sshd_config) e inicie el servidor (por ejemplo: sudo service ssh start).

Para asociar a un proceso en ejecución en un contenedor de Docker de Linux:

  1. En Visual Studio, seleccione Depurar > Asociar al proceso (CTRL+ALT+P) para abrir el cuadro de diálogo Asociar al proceso.

  2. Establezca Tipo de conexión en Docker (contenedor de Linux) .

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio en la que se muestra un tipo de conexión Docker (contenedor de Linux).

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio en la que se muestra un tipo de conexión Docker (contenedor de Linux).

  3. Seleccione Buscar... para establecer el Destino de conexión mediante el cuadro de diálogo Seleccionar contenedor de Docker.

    Puede depurar un proceso de contenedor de Docker de forma local o remota.

    • Para depurar un proceso de contenedor de Docker localmente:

      1. Establezca Docker CLI host (Host de CLI de Docker) en Máquina local.

      2. Seleccione un contenedor en ejecución con el que establecer la conexión de la lista y presione Aceptar.

        Captura de pantalla de la selección del menú del contenedor Docker

        Captura de pantalla de la selección del menú del contenedor Docker

    • Para depurar un proceso de contenedor de Docker de forma remota:

      Puede conectarse a un proceso en ejecución en un contenedor Docker mediante una de las dos opciones. La primera opción, usar SSH, es idónea si no tiene herramientas de Docker instaladas en la máquina local. Si tiene herramientas de Docker instaladas localmente y tiene un demonio de Docker que está configurado para aceptar solicitudes remotas, pruebe la segunda opción: usar un demonio de Docker.

      • Para conectarse a un equipo remoto a través de SSH:

        1. Seleccione Agregar... para conectarse a un sistema remoto.
          Captura de pantalla de la conexión a un sistema remoto.
          Captura de pantalla de la conexión a un sistema remoto.
        2. Escriba la información de conexión necesaria y elija Conectar.
        3. Tras conectarse a SSH, seleccione un contenedor en ejecución al que asociarse y seleccione Aceptar.
      • Para establecer el destino en un contenedor remoto que ejecuta un proceso a través de un demonio Docker:

        1. Especifique la dirección del demonio (es decir, a través de TCP, IP, etc.) en Docker host (Optional) (Host de Docker [opcional]) y, a continuación, seleccione Actualizar.
        2. Tras conectarse al demonio correctamente, seleccione un contenedor en ejecución al que asociarse y seleccione Aceptar.
  4. Elija el proceso de contenedor correspondiente en la lista Procesos disponibles y seleccione Asociar para empezar a depurar el proceso de contenedor de C# en Visual Studio.

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio. El tipo de conexión está establecido en Docker (contenedor de Linux) y se selecciona el proceso dotnet.

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio. El tipo de conexión está establecido en Docker (contenedor de Linux) y se selecciona el proceso dotnet.

Asociación a un proceso que se ejecuta en un contenedor de Docker de Windows

Puede asociar el depurador de Visual Studio a un proceso que se ejecuta en un contenedor de Docker de Windows en el equipo local mediante el cuadro de diálogo Asociar al proceso.

Importante

Para usar esta característica con un proceso de .NET Core, debe instalar la carga de trabajo de desarrollo multiplataforma de .NET Core y tener acceso local al código fuente.

Para asociar a un proceso en ejecución en un contenedor de Docker de Windows:

  1. En Visual Studio, seleccione Depurar > Asociar al proceso (o CTRL+ALT+P) para abrir el cuadro de diálogo Asociar al proceso .

  2. Establezca Tipo de conexión en Docker (contenedor de Windows) .

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio en la que se muestra un tipo de conexión Docker (contenedor de Windows).

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio en la que se muestra un tipo de conexión Docker (contenedor de Windows).

  3. Seleccione Buscar... para establecer el Destino de conexión mediante el cuadro de diálogo Seleccionar contenedor de Docker.

    Importante

    El proceso de destino debe tener la misma arquitectura de procesador que el contenedor de Windows de Docker en el que se está ejecutando.

    El establecimiento del destino en un contenedor remoto a través de SSH no está disponible actualmente y solo puede realizarse mediante un demonio de Docker.

    Para establecer el destino en un contenedor remoto que ejecuta un proceso a través de un demonio Docker:

    1. Especifique la dirección del demonio (es decir, a través de TCP, IP, etc.) en Docker host (Optional) (Host de Docker [opcional]) y, a continuación, seleccione Actualizar.

    2. Tras conectarse al demonio correctamente, seleccione un contenedor en ejecución al que asociarse y seleccione Aceptar.

  4. Elija el proceso de contenedor correspondiente en la lista Procesos disponibles y seleccione Asociar para empezar a depurar el proceso de contenedor de C#.

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio. El tipo de conexión se establece en Docker (contenedor de Windows) y se selecciona el proceso dotnet.

    Captura de pantalla del cuadro de diálogo Asociar al proceso en Visual Studio. El tipo de conexión se establece en Docker (contenedor de Windows) y se selecciona el proceso dotnet.