Comment utiliser la commande docker plugin disable pour désactiver un plugin

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à gérer les plugins Docker en vous concentrant sur la commande docker plugin disable. Vous commencerez par lister les plugins actuellement installés pour comprendre leur statut. Ensuite, vous pratiquerez la désactivation d'un plugin et observerez l'effet de cette action.

Le laboratoire couvrira également comment vérifier qu'un plugin a été désactivé avec succès. Facultativement, vous explorerez les scénarios dans lesquels la désactivation d'un plugin peut être restreinte, par exemple lorsqu'il a des références actives, et comment éventuellement forcer la désactivation d'un plugin actif.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555188{{"Comment utiliser la commande docker plugin disable pour désactiver un plugin"}} docker/rm -.-> lab-555188{{"Comment utiliser la commande docker plugin disable pour désactiver un plugin"}} docker/volume -.-> lab-555188{{"Comment utiliser la commande docker plugin disable pour désactiver un plugin"}} end

Lister les plugins installés

Dans cette étape, vous apprendrez à lister les plugins Docker actuellement installés sur votre système. Les plugins Docker étendent les fonctionnalités de Docker, en fournissant des fonctionnalités telles que la gestion des volumes, la mise en réseau et la journalisation.

Pour lister les plugins installés, vous pouvez utiliser la commande docker plugin ls. Cette commande affichera la liste de tous les plugins installés, ainsi que leur statut (activé ou désactivé) et d'autres informations pertinentes.

Exécutons la commande pour voir les plugins installés.

docker plugin ls

Vous devriez voir une sortie similaire à celle-ci, bien que les plugins spécifiques listés puissent varier en fonction de votre environnement :

ID    NAME    DESCRIPTION    ENABLED

Dans un environnement LabEx par défaut, il n'y a peut-être pas de plugins installés par défaut. La sortie ci-dessus indique qu'aucun plugin n'est actuellement installé. Si vous aviez des plugins installés, ils seraient listés ici.

Les colonnes de la sortie sont les suivantes :

  • ID : L'identifiant unique du plugin.
  • NAME : Le nom du plugin.
  • DESCRIPTION : Une brève description des fonctionnalités du plugin.
  • ENABLED : Indique si le plugin est actuellement activé (true) ou désactivé (false).

Comprendre quels plugins sont installés et leur statut est la première étape de la gestion des plugins Docker. Dans les étapes suivantes, vous apprendrez à désactiver et à gérer ces plugins.

Désactiver un plugin

Dans cette étape, vous apprendrez à désactiver un plugin Docker installé. Désactiver un plugin le met à l'arrêt et rend ses fonctionnalités indisponibles pour Docker.

Pour désactiver un plugin, vous utilisez la commande docker plugin disable suivie du nom ou de l'ID du plugin que vous souhaitez désactiver.

Étant donné qu'aucun plugin n'est installé par défaut dans cet environnement, nous allons d'abord installer un simple plugin pour démontrer la commande de désactivation. Nous installerons le plugin vieux/sshfs, qui permet de monter des systèmes de fichiers SSH distants en tant que volumes Docker.

Tout d'abord, installons le plugin. Cette commande téléchargera l'image du plugin et l'activera.

docker plugin install vieux/sshfs

Vous serez invité à confirmer les capacités du plugin. Tapez y et appuyez sur Entrée pour continuer.

Plugin "vieux/sshfs" is requesting the following privileges:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-host-dnsserver: true
 - allow-other: true
 - capability: [CAP_SYS_ADMIN]
Do you grant the plugin these privileges? [y/n] y

Une fois l'installation terminée, vous pouvez vérifier que le plugin est installé et activé en listant à nouveau les plugins :

docker plugin ls

Vous devriez maintenant voir vieux/sshfs listé avec ENABLED défini sur true.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         true

Maintenant, désactivons le plugin vieux/sshfs en utilisant son nom :

docker plugin disable vieux/sshfs

Si la commande réussit, vous ne verrez aucune sortie. Cela indique que le plugin a été désactivé.

Désactiver un plugin est utile lorsque vous n'avez plus besoin de ses fonctionnalités ou si vous résolvez des problèmes. Dans l'étape suivante, vous vérifierez que le plugin est bien désactivé.

Vérifier que le plugin est désactivé

Dans cette étape, vous vérifierez que le plugin vieux/sshfs que vous avez désactivé à l'étape précédente n'est effectivement plus activé.

Pour vérifier l'état des plugins installés, vous pouvez à nouveau utiliser la commande docker plugin ls. Cette commande affichera l'état actuel de tous les plugins.

Exécutez la commande :

docker plugin ls

Regardez la sortie pour le plugin vieux/sshfs. La colonne ENABLED devrait maintenant afficher false.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

Voir false dans la colonne ENABLED confirme que le plugin a été désactivé avec succès. Lorsqu'un plugin est désactivé, Docker ne peut pas utiliser ses fonctionnalités.

Cette étape de vérification est importante pour vous assurer que votre commande précédente a eu l'effet souhaité. Dans les étapes facultatives suivantes, vous explorerez des scénarios où la désactivation d'un plugin peut être plus complexe.

Tenter de désactiver un plugin avec des références (optionnel)

Dans cette étape optionnelle, vous allez tenter de désactiver un plugin qui est actuellement utilisé ou dont d'autres ressources dépendent. Cela montrera comment Docker gère de telles situations.

Tout d'abord, réactivons le plugin vieux/sshfs afin de pouvoir l'utiliser.

docker plugin enable vieux/sshfs

Maintenant, créons un volume Docker qui utilise le plugin vieux/sshfs. Cela créera une dépendance vis-à-vis du plugin.

docker volume create --driver vieux/sshfs -o sshcmd=user@host:/path/to/dir -o IdentityFile=~/.ssh/id_rsa sshfs_volume

Remarque : Cette commande échouera probablement car vous n'avez pas configuré de serveur SSH valide et de clé SSH. C'est normal et cela a pour but de créer un volume qui tente d'utiliser le plugin, créant ainsi une référence. Vous verrez un message d'erreur indiquant que la création du volume a échoué.

Maintenant, essayons de désactiver à nouveau le plugin vieux/sshfs tandis que le volume sshfs_volume existe, même si la création du volume a échoué.

docker plugin disable vieux/sshfs

Vous devriez voir un message d'erreur similaire à celui-ci :

Error response from daemon: plugin vieux/sshfs is in use by volume sshfs_volume

Cette erreur se produit car Docker vous empêche de désactiver un plugin qui est actuellement référencé par d'autres ressources Docker, telles que des volumes. C'est un mécanisme de sécurité pour éviter tout comportement inattendu ou perte de données.

Pour désactiver le plugin avec succès dans ce scénario, vous devrez d'abord supprimer la ressource dépendante (le volume dans ce cas). Supprimons le volume :

docker volume rm sshfs_volume

Maintenant, vous devriez être en mesure de désactiver le plugin :

docker plugin disable vieux/sshfs

Cette fois, la commande devrait réussir sans message d'erreur.

Cette étape illustre que Docker gère les dépendances et vous empêche de désactiver des plugins qui sont activement utilisés.

Désactiver forcément un plugin actif (optionnel)

Dans cette étape optionnelle, vous allez apprendre à désactiver forcément un plugin Docker. Cela est parfois nécessaire lorsqu'un plugin est bloqué ou ne peut pas être désactivé normalement. Cependant, utilisez l'option de force avec prudence, car cela peut potentiellement entraîner un comportement inattendu si le plugin est activement utilisé par des ressources critiques.

Tout d'abord, assurons-nous que le plugin vieux/sshfs est activé.

docker plugin enable vieux/sshfs

Maintenant, essayons de désactiver le plugin de force en utilisant le drapeau -f ou --force :

docker plugin disable -f vieux/sshfs

Même avec le drapeau de force, si le plugin est activement utilisé par un conteneur en cours d'exécution ou d'autres ressources critiques, Docker peut toujours empêcher l'opération de désactivation pour éviter l'instabilité du système. Cependant, pour un simple plugin comme vieux/sshfs qui n'est pas en train de gérer activement un conteneur en cours d'exécution, le drapeau de force réussira généralement même s'il y avait des références persistantes (bien que nous ayons supprimé la référence du volume à l'étape précédente).

L'option de force est principalement conçue pour gérer les situations où un plugin ne répond pas ou ne peut pas être désactivé par la méthode standard. Elle tente d'arrêter le processus du plugin et de le désactiver indépendamment de son état actuel ou de ses références mineures.

Après avoir essayé de désactiver le plugin de force, vous pouvez vérifier son statut :

docker plugin ls

Le plugin vieux/sshfs devrait maintenant être listé avec ENABLED défini sur false.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

Ceci conclut les étapes optionnelles sur la gestion des dépendances de plugins et la désactivation forcée. Vous avez appris à lister, désactiver et vérifier le statut des plugins Docker, ainsi qu'à comprendre comment Docker gère les tentatives de désactivation de plugins avec des références.

Résumé

Dans ce laboratoire (lab), vous avez appris à gérer les plugins Docker, en particulier à les désactiver. Vous avez commencé par lister les plugins installés en utilisant la commande docker plugin ls pour comprendre leur statut et identifier ceux qui sont actifs. Ensuite, vous avez pratiqué la désactivation d'un plugin en utilisant la commande docker plugin disable, montrant ainsi comment arrêter la fonctionnalité d'un plugin. Enfin, vous avez vérifié que le plugin avait été désactivé avec succès.