Utiliser la fenêtre Conteneurs
Vous pouvez voir ce qui se passe à l’intérieur des conteneurs qui hébergent votre application en utilisant la fenêtre Conteneurs. Si vous avez l’habitude d’utiliser l’invite de commandes pour exécuter des commandes Docker afin de voir et diagnostiquer ce qui se passe avec vos conteneurs, cette fenêtre offre un moyen plus pratique de monitorer vos conteneurs sans quitter l’IDE Visual Studio.
Vous pouvez également voir des informations sur les images conteneur dans la fenêtre Conteneurs.
Prérequis
- Docker Desktop
- Visual Studio 2019 version 16.4 ou ultérieure.
- Docker Desktop
- Visual Studio 2022 ou Visual Studio 2019 version 16.4 ou ultérieure.
- Pour le nœud Docker Compose, Visual Studio 2022 version 17.7 ou ultérieure et Docker v2, qui est installé avec Docker Desktop et activé par défaut.
Voir des informations sur vos conteneurs
La fenêtre Conteneurs s’ouvre automatiquement quand vous démarrez un projet .NET conteneurisé. Pour voir vos conteneurs dans Visual Studio à tout moment, utilisez Ctrl+Q qui active la zone de recherche de Visual Studio, puis tapez Containers
et choisissez le premier élément. Vous pouvez également ouvrir la fenêtre Conteneurs à partir du menu principal. Utilisez le chemin de menu Afficher>Autres fenêtres>Conteneurs.
Sur le côté gauche, vous voyez la liste des conteneurs qui sont sur votre machine locale. Les conteneurs associés à votre solution s’affichent sous Conteneurs de solution. À droite, vous voyez un volet avec des onglets pour Environnement, Étiquettes, Ports, Volumes, Journaux et Fichiers.
Conseil
Vous pouvez facilement personnaliser l’emplacement où la fenêtre Outil Conteneurs est ancrée dans Visual Studio. Consultez Personnalisation des dispositions de fenêtres dans Visual Studio. Par défaut, la fenêtre Conteneurs est ancrée avec la fenêtre Espion quand le débogueur est en cours d’exécution.
Si vous utilisez Docker Compose et Visual Studio 2022 version 17.7 ou ultérieure, une arborescence de nœuds pour votre solution et son projet Docker Compose apparaissent, avec un nœud parent pour la solution et des nœuds enfants pour chaque projet.
Voir les variables d’environnement
L’onglet Environnement affiche les variables d’environnement dans le conteneur. Pour le conteneur de votre application, vous pouvez définir ces variables de plusieurs façons, par exemple, dans le fichier Dockerfile, dans un fichier .env ou via l’option -e quand vous démarrez un conteneur à partir d’une commande Docker.
Notes
Les changements des variables d’environnement ne sont pas reflétés en temps réel. Par ailleurs, les variables d’environnement de cet onglet sont les variables d’environnement système sur le conteneur et ne reflètent pas les variables d’environnement utilisateur locales de l’application.
Voir les étiquettes
L’onglet Étiquettes affiche les étiquettes du conteneur. Les étiquettes sont un moyen de définir des métadonnées personnalisées sur des objets Docker. Certaines étiquettes sont définies automatiquement par Visual Studio.
Afficher les mappages de ports
Sous l’onglet Ports, vous pouvez consulter les mappages de ports qui sont en vigueur pour votre conteneur.
Les ports connus étant liés, si du contenu est disponible sur un port, vous pouvez cliquer sur le lien pour ouvrir le navigateur.
Afficher les volumes
L’onglet Volumes affiche les volumes (nœuds de système de fichiers montés) sur le conteneur.
Afficher les journaux d’activité
L’onglet Journaux affiche les résultats de la commande docker logs
. Par défaut, l’onglet affiche les flux stdout et stderr sur un conteneur, mais vous pouvez configurer la sortie. Pour plus d’informations, consultez Journalisation Docker. Par défaut, l’onglet Journaux diffuse les journaux en continu, mais vous pouvez interrompre cette diffusion en choisissant le bouton Flux de l’onglet. Si vous sélectionnez Flux de nouveau, la diffusion en continu reprend à partir de l’emplacement où elle s’est arrêtée.
Pour effacer les journaux, utilisez le bouton Effacer sous l’onglet Journaux. Pour obtenir tous les journaux, utilisez le bouton Actualiser.
Notes
Visual Studio redirige automatiquement stdout et stderr vers la fenêtre Sortie en cas d’exécution sans débogage avec des conteneurs Windows. Ainsi, les conteneurs Windows démarrés à partir de Visual Studio avec Ctrl+F5 n’affichent pas les journaux dans cet onglet. Utilisez plutôt la fenêtre Sortie.
Si vous utilisez Docker Compose avec Visual Studio 2022 version 17.7 ou une version ultérieure, vous pouvez afficher les journaux de chaque conteneur séparément ou sous forme entrelacée dans un seul flux de sortie. Si vous sélectionnez le nœud parent pour la solution, les journaux entrelacés de tous les projets Compose apparaissent. La première colonne de chaque ligne affiche le conteneur qui a produit cette ligne de sortie. Si vous souhaitez uniquement voir les journaux d’activité d’un seul conteneur, sélectionnez le nœud de ce projet spécifique.
Voir le système de fichiers
Sous l’onglet Fichiers, vous pouvez voir le système de fichiers du conteneur, y compris le dossier d’application qui contient votre projet.
Pour ouvrir des fichiers dans Visual Studio, accédez au fichier et double-cliquez dessus, ou cliquez avec le bouton droit et choisissez Ouvrir. Visual Studio ouvre les fichiers en mode Lecture seule.
L'onglet Fichiers vous permet d'afficher les journaux d'application tels que les journaux des services d'information Internet (IIS), les fichiers de configuration et d'autres fichiers de contenu dans le système de fichiers de votre conteneur
Dans Visual Studio 2022 version 17.7 ou une version ultérieure, lorsque vous ciblez .NET 8 ou une version ultérieure, le fichier Dockerfile peut contenir la commande USER app
, qui spécifie l’exécution de l’application avec des autorisations utilisateur normales. L’onglet Fichiers utilise également ces autorisations. Ainsi, vous ne pourrez peut-être pas afficher certains dossiers si ces dossiers sont configurés pour que leur affichage exige des autorisations élevées.
Démarrer, arrêter et supprimer des conteneurs
Par défaut, la fenêtre Conteneurs affiche tous les conteneurs gérés par Docker sur la machine. Vous pouvez utiliser les boutons de barre d’outils pour démarrer, arrêter ou supprimer un conteneur que vous ne voulez plus. Cette liste est mise à jour dynamiquement quand des conteneurs sont créés ou supprimés.
Pour sélectionner plusieurs conteneurs, par exemple, pour en supprimer plusieurs à la fois, utilisez Ctrl+Clic. Si vous essayez de démarrer plus de 10 conteneurs, vous êtes invité à le confirmer. Vous pouvez désactiver l’invite de confirmation si vous le souhaitez.
Ouvrir une fenêtre de terminal dans un conteneur en cours d’exécution
Vous pouvez ouvrir une fenêtre de terminal (invite de commandes ou interpréteur de commandes interactif) dans le conteneur avec le bouton Ouvrir une fenêtre de terminal dans la fenêtre Conteneurs.
Pour les conteneurs Windows, l’invite de commandes Windows s’ouvre. Pour les conteneurs Linux, une fenêtre s’ouvre à partir de l’interpréteur de commandes Bash.
Si vous ciblez .NET 8, votre fichier Dockerfile peut spécifier la commande USER app
, auquel cas votre application s’exécute avec des autorisations utilisateur normales, et non des autorisations élevées. Le fichier Dockerfile généré par Visual Studio inclut cela dans Visual Studio 2022 version 17.7 et les versions ultérieures, si vous ciblez .NET 8 ou une version ultérieure. Le terminal s’ouvre en tant qu’utilisateur spécifié dans le fichier Dockerfile (par défaut pour les projets .NET 8, il s’agit de app
), ou si aucun utilisateur n’est spécifié, il s’exécute en tant qu’utilisateur root
.
Normalement, la fenêtre de terminal s’ouvre en dehors de Visual Studio comme une fenêtre distincte. Si vous voulez ancrer un environnement de ligne de commande intégré à l’IDE Visual Studio comme fenêtre Outil, vous pouvez installer Whack Whack Terminal.
Attacher le débogueur à un processus
Vous pouvez attacher le débogueur à un processus en cours d’exécution dans le conteneur avec le bouton Attacher au processus de la barre d’outils de la fenêtre Conteneurs. Quand vous utilisez ce bouton, la boîte de dialogue Attacher au processus s’affiche et montre les processus disponibles qui s’exécutent dans le conteneur.
Vous pouvez attacher le débogueur à des processus managés dans le conteneur. Pour rechercher un processus dans un autre conteneur, utilisez le bouton Rechercher et sélectionnez un autre conteneur dans la boîte de dialogue Sélectionner un conteneur Docker.
Affichage d’images
Vous pouvez également voir des images sur la machine locale en utilisant l’onglet Images dans la fenêtre Conteneurs. Les images tirées de dépôts externes sont regroupées dans une arborescence.
La fenêtre montre uniquement les onglets applicables aux images : Étiquettes et Détails. L’onglet Détails affiche les détails de configuration de l’image au format JSON.
Pour supprimer une image, cliquez avec le bouton droit sur l’image dans l’arborescence, choisissez Supprimer, ou sélectionnez l’image et utilisez le bouton Supprimer dans la barre d’outils.
Élaguer des conteneurs et des images
Vous pouvez facilement supprimer des conteneurs et des images que vous n’utilisez plus en utilisant le bouton Élaguer dans la barre d’outils de la fenêtre Conteneurs.
Vous êtes invité à confirmer que vous souhaitez supprimer tous vos conteneurs inutilisés.
Quand l’onglet Images est sélectionné, le bouton Élaguer vous demande si vous souhaitez supprimer toutes les images non résolues. Les images non résolues sont des images de couches qui ne sont plus associées à une image étiquetée. Leur suppression occasionnelle permet d’économiser de l’espace disque.
Options de configuration
Vous pouvez configurer des boîtes de dialogue de confirmation pour diverses tâches, comme la suppression de conteneurs et d’images, ou le lancement de plus de 10 conteneurs à la fois. Vous pouvez désactiver chaque invite en utilisant la case à cocher de la boîte de dialogue. Vous pouvez également activer ou désactiver ces options dans les paramètres sous Outils>Options>Outils de conteneur>Fenêtre Outil Conteneurs. Consultez Configurer les outils de conteneur.