Attacher à un processus exécuté sur un conteneur Docker

Vous pouvez déboguer des applications exécutées dans un conteneur Docker Windows ou un conteneur Docker Linux .NET Core à l’aide de Visual Studio.

Prérequis

S’il n’est pas déjà présent sur le serveur Linux, vous devez installer le serveur SSH, le décompresser et l’installer avec curl ou wget. Par exemple, sur Ubuntu, vous pouvez le faire en exécutant :

sudo apt-get install openssh-server unzip curl

Le protocole SFTP (Secure File Transfer Protocol) doit également être activé. La plupart des distributions SSH installent et activent SFTP par défaut, mais ce n’est pas toujours le cas.

Attacher à un processus exécuté sur un conteneur Docker Linux

Vous pouvez attacher le débogueur Visual Studio à un processus exécuté dans un conteneur Docker Linux .NET Core sur votre ordinateur local ou distant à l’aide de la boîte de dialogue Attacher au processus.

Important

Pour utiliser cette fonctionnalité, vous devez disposer d’un accès local au code source.

Pour attacher à un processus exécuté dans un conteneur Docker Linux :

  1. Dans Visual Studio, sélectionnez Déboguer>Attacher au processus (CTRL+ALT+P) pour ouvrir la boîte de dialogue Attacher au processus.

Capture d’écran de la boîte de dialogue Attacher au processus dans Visual Studio montrant un type de connexion de Docker (conteneur Linux).

  1. Définissez le type de connexion sur Docker (conteneur Linux).

  2. Sélectionnez Rechercher… pour définir la cible de connexion via la boîte de dialogue Sélectionner un conteneur Docker.

    Vous pouvez déboguer un processus de conteneur Docker localement ou à distance.

    Pour déboguer un processus de conteneur Docker localement :

    1. Définissez l’hôte CLI Docker sur Ordinateur local.
    2. Sélectionnez un conteneur exécuté auquel attacher dans la liste, puis appuyez sur OK.

    Sélectionner le menu conteneur Docker

    B. Pour déboguer un processus de conteneur Docker à distance :

    Notes

    Il existe deux options pour se connecter à distance à un processus exécuté dans un conteneur Docker. La première option, qui consiste à utiliser SSH, est idéale si vous n’avez pas installé d’outils Docker sur votre ordinateur local. Si vous avez installé des outils Docker localement et si vous disposez d’un démon Docker configuré pour accepter les requêtes distantes, essayez la deuxième option, à savoir l’utilisation d’un démon Docker.

    1. Pour vous connecter à un ordinateur distant via SSH :

      1. Sélectionnez Ajouter… pour vous connecter à un système distant.
        Se connecter à un système distant
      2. Sélectionnez un conteneur exécuté à attacher après la connexion au SSH ou au démon, puis appuyez sur OK.
    2. Pour définir la cible sur un conteneur distant exécutant un processus via un démon Docker

      1. Spécifiez l’adresse du démon (c’est-à-dire, via TCP, IP, etc.) sous l’hôte Docker (facultatif) et cliquez sur le lien d’actualisation.
      2. Sélectionnez un conteneur exécuté à attacher après la connexion au démon, puis appuyez sur OK.
  3. Choisissez le processus de conteneur correspondant dans la liste des Processus disponibles, puis sélectionnez Attacher pour commencer à déboguer votre processus de conteneur C# dans Visual Studio !

    Capture d’écran de la boîte de dialogue Attacher au processus dans Visual Studio. Le type de connexion est défini sur Docker (conteneur Linux) et le processus dotnet est sélectionné.

Attacher à un processus exécuté sur un conteneur Docker Windows

Vous pouvez attacher le débogueur Visual Studio à un processus exécuté dans un conteneur Docker Windows sur votre ordinateur local à l’aide de la boîte de dialogue Attacher au processus.

Important

Pour utiliser cette fonctionnalité avec un processus .NET Core, vous devez installer la charge de travail de développement multiplateforme .NET Core et disposer d’un accès local au code source.

Pour attacher à un processus exécuté dans un conteneur Docker Windows :

  1. Dans Visual Studio, sélectionnez Déboguer>Attacher au processus (ou CTRL+ALT+P) pour ouvrir la boîte de dialogue Attacher au processus.

    Capture d’écran de la boîte de dialogue Attacher au processus dans Visual Studio montrant un type de connexion de Docker (conteneur Windows).

  2. Définissez le type de connexion sur Docker (conteneur Windows).

  3. Sélectionnez Rechercher… pour définir la cible de connexion à l’aide de la boîte de dialogue Sélectionner un conteneur Docker.

    Important

    Le processus cible doit avoir la même architecture de processeur que le conteneur Docker Windows sur lequel il s’exécute.

    La définition de la cible d’un conteneur distant via SSH n’est actuellement pas disponible et ne peut être effectuée qu’à l’aide d’un démon Docker.

    Pour définir la cible sur un conteneur distant exécutant un processus via un démon Docker

    1. Spécifiez l’adresse du démon (c’est-à-dire, via TCP, IP, etc.) sous l’hôte Docker (facultatif) et cliquez sur le lien d’actualisation.

    2. Sélectionnez un conteneur exécuté à attacher après la connexion au démon, puis cliquez sur OK.

  4. Choisissez le processus de conteneur correspondant dans la liste des Processus disponibles, puis sélectionnez Attacher pour commencer à déboguer votre processus de conteneur C#.

    Capture d’écran de la boîte de dialogue Attacher au processus dans Visual Studio. Le type de connexion est défini sur Docker (conteneur Windows) et le processus dotnet.exe est sélectionné.