Docker Engine prend en charge un système de plug-in qui vous permet d'ajouter des fonctionnalités supplémentaires à l'exécution du conteneur. Les plugins pour les nouveaux pilotes de stockage, les piles 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 plugins qui utilisent le système de plugin 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 des commandes Docker existantes.
Il existe trois principaux types de plug-ins :
- Journalisation – 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.
- Volume – Les plug-ins de stockage apportent des systèmes de fichiers et des pilotes de volume supplémentaires à Docker, vous offrant ainsi 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 à l'aide de l'API des plugins publics et du SDK Go.
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
commande. Cela fonctionne de la même manière que de pousser une image vers le registre public. Vous devez exécuter 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 l'docker plugin install
commande. 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 plug-in à installer. Contrairement aux images, vous ne pouvez pas omettre la version pour extraire automatiquement le latest
balise.
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 d'installation" sur sa page Docker Hub. Les plugins gratuits vous permettront de passer à un nouvel écran avec la boîte de copier-coller habituelle 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 de l'hôte afin qu'ils puissent fournir leurs fonctionnalités. Par exemple, un plugin réseau devra avoir accès à l'host
de Docker 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
flag à votre install
commande; ceci est idéal pour les installations non interactives, mais risque d'accorder des autorisations involontaires si un plug-in est mis à jour avec de nouvelles fonctionnalités.
Les plugins sont automatiquement activés après l'installation. L'activation d'un plug-in permet l'exécution de scripts de pré-installation. Utilisez le --disable
pour définir par défaut un plug-in sur le statut désactivé, le laissant inerte jusqu'à ce qu'il soit activé manuellement ultérieurement.
Affichage des détails du plugin
Une fois installé, votre plugin apparaîtra lors de l'exécution de docker plugin ls
:
docker plugin ls
Des informations plus détaillées sur un seul plugin peuvent être obtenues à partir de docker inspect
commande. Cela accepte un ID ou une balise de plugin et affiche un JSON détaillé qui décrit le manifeste du plugin :
docker inspect eccffc
Installation hors ligne
La CLI Docker n'a pas de moyen intégré d'installer des plugins hors ligne. Néanmoins, vous pouvez ajouter des plugins à une installation Docker isolée en les installant d'abord sur un client en réseau, puis en copiant les fichiers du plugin 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
commande.
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
production. Un plug-in désactivé ne sera pas chargé, il agira donc comme s'il n'était pas installé.
Utilisez l'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 plug-in 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
commande. 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 plug-ins 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
commande :
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 de la setting-key
du plugin le paramètre sera mis à jour sur 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. La CLI Docker n'a pas de commande intégrée pour afficher tous les paramètres disponibles pour un plugin, mais ils s'affichent dans docker plugin inspect
production. Recherchez les 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.
Mise à jour de vos plugins
Les plugins sont mis à jour avec la docker plugin update
commande. Comme les autres commandes, elle prend un ID de plugin ou une balise 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 version la plus récente, 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
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. Vous feriez mieux de vous abonner aux annonces de publication des fournisseurs de vos plugins, puis d'appliquer les mises à jour à votre installation dès qu'elles seront 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 depuis votre terminal. La CLI intègre un programme de mise à jour des plugins, mais il ne fonctionne qu'avec un seul plugin à la fois, pas avec l'intégralité de votre catalogue.
Maintenant que vous savez utiliser et gérer les plugins, vous pouvez commencer à parcourir Docker Hub pour trouver des options pour améliorer votre flux de travail. Elastic Logging Plugin 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 la mise en réseau chiffrée 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 pourrez publier auprès de la communauté élargie via le Hub.