Partager via


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.

Remarque

Vous pouvez utiliser ces instructions pour attacher à Docker Linux s’exécutant dans WSL via SSH, mais votre instance WSL doit d’abord exécuter un serveur SSH. Par exemple, vous pouvez installer Open SSH Server (par exemple : sudo apt-get install openssh-server), configurer le serveur en modifiant le fichier de configuration (par exemple : /etc/ssh/sshd_config), puis démarrer le serveur (par exemple : sudo service ssh start).

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.

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

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

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

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

        Capture d’écran du menu de sélection de conteneur Docker.

        Capture d’écran du menu de sélection de conteneur Docker.

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

      Vous pouvez vous connecter à un processus en cours d’exécution dans un conteneur Docker à l’aide de l’une des deux options. 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.

      • Pour vous connecter à un ordinateur distant via SSH :

        1. Sélectionnez Ajouter… pour vous connecter à un système distant.
          Capture d’écran de connexion à un système distant.
          Capture d’écran de connexion à un système distant.
        2. Entrez les informations de connexion requises et choisissez Connecter.
        3. Après s’être connecté au SSH, sélectionnez un conteneur exécuté à attacher, puis cliquez sur OK.
      • 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), puis choisissez Actualiser.
        2. Sélectionnez un conteneur exécuté à attacher après la connexion au démon, puis choisissez 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# 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é.

    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.

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

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

    Capture d’écran de la boîte de dialogue Attacher au processus dans Visual Studio montrant un type de connexion de 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), puis choisissez Actualiser.

    2. Sélectionnez un conteneur exécuté à attacher après la connexion au démon, puis choisissez 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é.

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