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.

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.

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

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

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

    Seleccione el menú Contenedor de Docker

    B. Para depurar un proceso de contenedor de Docker de forma remota:

    Nota

    Hay dos opciones para establecer una conexión remota con un proceso en ejecución en un contenedor de Docker. 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.

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

      1. Seleccione Agregar... para conectarse a un sistema remoto.
        Conectarse a un sistema remoto
      2. Seleccione un contenedor en ejecución al que asociarse después de conectarse correctamente al SSH o el demonio y haga clic en Aceptar.
    2. Para establecer el destino en un contenedor remoto que ejecuta un proceso a través de un demonio de 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 haga clic en el vínculo para actualizar.
      2. Seleccione un contenedor en ejecución al que asociarse después de conectarse al demonio correctamente y haga clic en Aceptar.
  3. 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.

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 .

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

  2. Establezca Tipo de conexión en 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 de 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 haga clic en el vínculo para actualizar.

    2. Seleccione un contenedor en ejecución al que asociarse después de conectarse al demonio correctamente 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.