Docker Engine prend en charge un système de plug-in qui vous permet d’ajouter des fonctionnalités supplémentaires à l’environnement d’exécution du conteneur. Les plugins pour les nouveaux pilotes de stockage, les piles de mise en réseau et les systèmes de journalisation sont tous disponibles gratuitement.
Les versions modernes de Docker Engine incluent tout ce dont vous avez besoin pour gérer les plugins dans la CLI. Nous nous concentrons sur ce système de plug-in « géré » dans ce guide. Vous devez installer et maintenir manuellement les plug-ins qui utilisent le système de plug-ins hérité.
Tout sur les plugins
Les plugins étendent Docker Engine avec de nouvelles fonctionnalités trop spécifiques pour être livrées avec l’installation générale. Normalement, vous n’interagissez pas directement avec les plugins. Une fois qu’un plugin est installé, vous pouvez référencer les ressources qu’il fournit lors de l’exécution de commandes Docker existantes.
Il existe trois principaux types de plugins :
- Enregistrement – Ces plugins ajoutent de nouveaux pilotes de journalisation, vous permettant de stocker les journaux dans des emplacements en dehors de Docker Engine et de votre machine hôte.
- Réseau – Les plug-ins de mise en réseau peuvent ajouter la prise en charge de nouveaux types de réseau et des fonctionnalités associées.
- Le volume – Les plugins de stockage apportent des systèmes de fichiers et des pilotes de volume supplémentaires à Docker, vous offrant plus d’options pour les données persistantes.
Des plugins avec des fonctionnalités qui ne relèvent pas de ces domaines principaux sont également disponibles. Les plugins sont créés par des fournisseurs communautaires ; vous pouvez écrire le vôtre en utilisant l’API des plugins publics et Go SDK.
Les plugins sont distribués via Docker Hub. Vous pouvez trouver les plugins disponibles en vous rendant sur la page Explorer et en sélectionnant l’onglet Plugins en haut. Plus de 600 plugins sont actuellement disponibles.
Si vous écrivez votre propre plugin, vous pouvez le soumettre à Docker Hub avec le docker plugin push
commander. Cela fonctionne de la même manière que de pousser une image dans le registre public. Tu dois courir docker plugin create
d’abord pour convertir le manifeste et le système de fichiers de votre plugin en un package prêt à être soumis. Vous pouvez obtenir plus d’informations sur la création de plugins dans la documentation Docker.
Installer un plugin
Les plugins sont installés avec le docker plugin install
commander. Ceci accepte le nom d’un plugin Docker Hub comme argument :
docker plugin install store/example/example-plugin:version
Les références de plugin ressemblent à des références d’image qui commencent par store/
. Les mêmes principes de balisage s’appliquent lors de la spécification de la version du plugin à installer. Contrairement aux images, vous ne pouvez pas omettre la version pour extraire automatiquement le latest
étiqueter.
Vous pouvez trouver le numéro de version d’un plugin et copier une commande d’installation prête à l’emploi en cliquant sur le bouton « Instructions de configuration » sur sa page Docker Hub. Des plugins gratuits vous permettront de passer à un nouvel écran avec la boîte de copier-coller normale en haut à droite. Exécutez la commande dans votre terminal pour lancer l’installation du plugin.
Les plugins demandent généralement l’accès aux privilèges d’hôte afin qu’ils puissent fournir leurs fonctionnalités. Par exemple, un plugin de réseau devra avoir accès à Docker host
réseau afin qu’il puisse connecter de nouvelles ressources. Confirmez l’invite d’autorisation en tapant y
et appuyez sur Entrée pour terminer l’installation. Vous pouvez ignorer l’invite en ajoutant le --grant-all-permissions
drapeau à votre install
commander; c’est idéal pour les installations non interactives mais risque d’accorder des autorisations involontaires si un plugin est mis à jour avec de nouvelles fonctionnalités.
Les plugins sont automatiquement activés après l’installation. L’activation d’un plugin permet l’exécution de scripts de pré-installation. Utilisez le --disable
flag pour mettre par défaut un plugin à l’état désactivé, le laissant inerte jusqu’à ce qu’il soit activé manuellement plus tard.
Affichage des détails du plug-in
Une fois installé, votre plugin s’affichera lors de l’exécution docker plugin ls
:
docker plugin ls
Des informations plus détaillées sur un seul plugin peuvent être obtenues à partir du docker inspect
commander. Cela accepte un ID ou une balise de plug-in et affiche un JSON détaillé qui décrit le manifeste du plug-in :
docker inspect eccffc
Installation hors ligne
Le Docker CLI n’a pas de moyen intégré pour installer des plugins hors ligne. Néanmoins, vous pouvez ajouter des plug-ins à une installation Docker à vide en les installant d’abord sur un client en réseau, puis en copiant les fichiers de plug-in sur le système hors ligne.
Vous trouverez les plugins installés dans le /var/lib/docker/plugins
répertoire sur votre hôte. Chaque plugin obtient son propre sous-répertoire nommé avec son ID. Ces identifiants sont visibles dans la sortie du docker plugin ls
commander.
Activation et désactivation des plugins
Les plugins peuvent être activés ou désactivés. Vous verrez l’état actuel dans la dernière colonne du ls
sortir. Un plugin désactivé ne sera pas chargé, il agira donc comme s’il n’était pas installé.
Utilisez le docker plugin enable
et docker plugin disable
commandes pour changer le statut d’un plugin. Fournissez l’ID de l’un de vos plugins installés comme seul argument de la commande :
docker plugin enable eccffc
Il se peut que vous ne puissiez pas désactiver un plugin s’il est activement utilisé par votre configuration Docker Engine ou l’un de vos conteneurs. Ajout du -f
flag forcera la désactivation du plug-in mais doit être utilisé avec parcimonie car vous risquez des sorties de conteneur involontaires.
Les plugins sont désinstallés avec le docker plugin rm
commander. Fournissez l’ID ou le nom d’un plugin pour le supprimer complètement de Docker. rm
a les mêmes comportements que disable
lors de la gestion des plugins activement utilisés et des suppressions forcées par la suite.
Modification des paramètres du plugin
Le système de plugins de Docker comprend un mécanisme intégré permettant aux auteurs de plugins d’exposer des paramètres personnalisables. En tant qu’utilisateur, vous pouvez modifier ces paramètres via le docker plugin set
commander:
docker plugin set example-plugin setting-key=new-value
Remplacer example-plugin
avec l’ID ou le nom du plugin que vous ciblez. La valeur du plugin setting-key
le paramètre sera mis à jour pour new-value
.
Les paramètres disponibles varient naturellement d’un plugin à l’autre. Ils doivent être documentés dans la description du plugin sur Docker Hub. Le Docker CLI n’a pas de commande intégrée pour afficher tous les paramètres disponibles pour un plugin, mais ils apparaissent dans docker plugin inspect
sortir. Cherchez le Settings
champ dans la représentation JSON d’un plugin ; il contiendra des objets avec Name
et Settable
champs pour les options que vous pouvez modifier via la CLI.
Mettre à jour vos plugins
Les plugins sont mis à jour avec le docker plugin update
commander. Comme les autres commandes, elle prend un identifiant ou une balise de plugin comme argument.
La mise à niveau d’un plugin téléchargera et installera la dernière version disponible sur Docker Hub. Si vous utilisez déjà la dernière version, la commande réinstallera la version actuelle. Vous serez invité à accorder au plugin tous les nouveaux privilèges dont il a besoin. le --grant-all-permissions
flag est accepté pour ignorer l’invite dans les environnements où la saisie interactive n’est pas possible.
Il n’y a aucun moyen de mettre à jour tous les plugins de votre système avec une seule commande. Il est préférable de vous abonner aux annonces de publication des fournisseurs de vos plugins, puis d’appliquer les mises à jour à votre installation dès qu’elles sont disponibles. Cela garantira que vos plugins restent sécurisés et pris en charge.
Résumé
L’écosystème de plugins de Docker vous permet d’ajouter des fonctionnalités supplémentaires à Docker Engine. Les plugins résident sur Docker Hub et peuvent être installés à partir de votre terminal. L’interface de ligne de commande intègre un programme de mise à jour de plug-in, mais elle ne fonctionne qu’avec un seul plug-in à la fois, et non avec l’intégralité de votre catalogue.
Maintenant que vous savez comment utiliser et gérer les plugins, vous pouvez commencer à parcourir Docker Hub pour trouver des options pour améliorer votre flux de travail. Le plug-in Elastic Logging diffuse les journaux de conteneur Docker vers un cluster de pile Elastic, vSphere pour Docker vous permet d’utiliser le stockage VMWare vSphere pour vos volumes persistants et Weave Net apporte un réseau chiffré en multidiffusion à Docker. Si vous ne voyez pas ce dont vous avez besoin, utilisez l’API du plug-in pour essayer d’écrire votre propre solution que vous pouvez publier à l’ensemble de la communauté via le Hub.