Docker Engine unterstützt ein Plugin-System, mit dem Sie der Containerlaufzeit zusätzliche Funktionen hinzufügen können. Plugins für neue Speichertreiber, Netzwerkstacks und Protokollierungssysteme sind alle frei verfügbar.
Moderne Versionen der Docker Engine enthalten alles, was Sie zum Verwalten von Plugins innerhalb der CLI benötigen. Wir konzentrieren uns in diesem Leitfaden auf dieses „verwaltete“ Plugin-System. Sie müssen Plugins, die das alte Plugin-System verwenden, manuell installieren und warten.
Alles über Plugins
Plugins erweitern die Docker Engine um neue Funktionen, die zu spezifisch sind, um sie mit der allgemeinen Installation auszuliefern. Normalerweise interagierst du nicht direkt mit Plugins. Sobald ein Plugin installiert ist, können Sie auf Ressourcen verweisen, die es bereitstellt, wenn Sie vorhandene Docker-Befehle ausführen.
Es gibt drei Haupt-Plugin-Typen:
- Protokollierung – Diese Plugins fügen neue Protokollierungstreiber hinzu, sodass Sie Protokolle an Orten außerhalb von Docker Engine und Ihrem Hostcomputer speichern können.
- Netzwerk – Netzwerk-Plug-ins können Unterstützung für neue Netzwerktypen und zugehörige Funktionen hinzufügen.
- Lautstärke – Speicher-Plug-ins bringen zusätzliche Dateisysteme und Volume-Treiber zu Docker und geben Ihnen mehr Optionen für persistente Daten.
Plugins mit Funktionen, die außerhalb dieser Kernbereiche liegen, sind ebenfalls verfügbar. Plugins werden von Community-Anbietern erstellt; Sie können Ihre eigenen mit der API für öffentliche Plugins und dem Go SDK schreiben.
Plugins werden über Docker Hub verteilt. Sie können verfügbare Plugins finden, indem Sie zur Seite „Erkunden“ gehen und oben die Registerkarte „Plugins“ auswählen. Derzeit sind über 600 Plugins verfügbar.
Wenn Sie Ihr eigenes Plugin schreiben, können Sie es mit docker plugin push
an Docker Hub senden Befehl. Dies funktioniert ähnlich wie das Pushen eines Images an die öffentliche Registrierung. Sie müssen docker plugin create
ausführen Konvertieren Sie zuerst das Manifest und das Dateisystem Ihres Plugins in ein Paket, das zur Übermittlung bereit ist. Weitere Informationen zum Erstellen von Plugins finden Sie in den Docker-Dokumenten.
Installieren eines Plugins
Plugins werden mit docker plugin install
installiert Befehl. Dies akzeptiert den Namen eines Docker-Hub-Plugins als Argument:
docker plugin install store/example/example-plugin:version
Plugin-Referenzen sehen aus wie Bildreferenzen, die mit store/
beginnen . Dieselben Tagging-Prinzipien gelten für die Angabe der zu installierenden Plugin-Version. Im Gegensatz zu Bildern können Sie die Version nicht weglassen, um automatisch den latest
abzurufen -Tag.
Sie können die Versionsnummer eines Plugins finden und einen betriebsbereiten Installationsbefehl kopieren, indem Sie auf der Docker-Hub-Seite auf die Schaltfläche „Setup-Anweisungen“ klicken. Kostenlose Plugins ermöglichen es Ihnen, zu einem neuen Bildschirm mit dem regulären Feld zum Kopieren und Einfügen oben rechts zu gelangen. Führen Sie den Befehl in Ihrem Terminal aus, um mit der Installation des Plugins zu beginnen.
Plugins fordern normalerweise Zugriff auf Host-Privilegien an, damit sie ihre Funktionalität bereitstellen können. Beispielsweise muss ein Netzwerk-Plugin Zugriff auf den host
von Docker haben Netzwerk, damit es neue Ressourcen verbinden kann. Bestätigen Sie die Eingabeaufforderung zur Berechtigung, indem Sie y
eingeben und drücken Sie die Eingabetaste, um die Installation abzuschließen. Sie können die Eingabeaufforderung überspringen, indem Sie --grant-all-permissions
hinzufügen Flag zu Ihrer install
hinzufügen Befehl; Dies ist ideal für nicht interaktive Installationen, riskiert jedoch unbeabsichtigte Berechtigungserteilungen, wenn ein Plugin mit neuen Funktionen aktualisiert wird.
Plugins werden nach der Installation automatisch aktiviert. Die Aktivierung eines Plugins erlaubt die Ausführung von Vorinstallationsskripten. Verwenden Sie den --disable
Flag, um ein Plugin standardmäßig in den deaktivierten Status zu versetzen und es inert zu lassen, bis es später manuell aktiviert wird.
Plug-in-Details anzeigen
Nach der Installation wird Ihr Plugin beim Ausführen von docker plugin ls
angezeigt :
docker plugin ls
Genauere Informationen zu einem einzelnen Plugin erhalten Sie über docker inspect
Befehl. Dies akzeptiert eine Plugin-ID oder ein Tag und zeigt ausführliches JSON an, das das Manifest des Plugins beschreibt:
docker inspect eccffc
Offline-Installation
Die Docker-CLI verfügt nicht über eine integrierte Möglichkeit, Plugins offline zu installieren. Nichtsdestotrotz können Sie Plug-ins zu einer Air-Gap-Docker-Installation hinzufügen, indem Sie sie zuerst auf einem vernetzten Client installieren und dann die Plug-in-Dateien auf das Offline-System kopieren.
Sie finden installierte Plugins im Ordner /var/lib/docker/plugins
Verzeichnis auf Ihrem Host. Jedes Plugin erhält ein eigenes Unterverzeichnis, das mit seiner ID benannt ist. Diese IDs sind in der Ausgabe des docker plugin ls
sichtbar Befehl.
Plugins aktivieren und deaktivieren
Plugins können entweder aktiviert oder deaktiviert werden. Den aktuellen Status sehen Sie in der letzten Spalte des ls
Ausgang. Ein deaktiviertes Plug-in wird nicht geladen, sodass es so tut, als wäre es nicht installiert.
Verwenden Sie das docker plugin enable
und docker plugin disable
Befehle, um den Status eines Plugins zu ändern. Geben Sie die ID eines Ihrer installierten Plugins als einziges Argument des Befehls an:
docker plugin enable eccffc
Möglicherweise können Sie ein Plug-in nicht deaktivieren, wenn es von Ihrer Docker-Engine-Konfiguration oder einem Ihrer Container aktiv verwendet wird. Hinzufügen des -f
Flag erzwingt die Deaktivierung des Plugins, sollte aber sparsam verwendet werden, da Sie unbeabsichtigte Container-Exits riskieren.
Plugins werden mit dem docker plugin rm
deinstalliert Befehl. Geben Sie die ID oder den Namen eines Plugins an, um es vollständig aus Docker zu entfernen. rm
hat das gleiche Verhalten wie disable
beim Umgang mit aktiv genutzten Plugins und anschließend erzwungenen Entfernungen.
Plugin-Einstellungen ändern
Das Plugin-System von Docker enthält einen integrierten Mechanismus für Plugin-Autoren, um anpassbare Einstellungen verfügbar zu machen. Als Nutzer können Sie diese Einstellungen über das docker plugin set
ändern Befehl:
docker plugin set example-plugin setting-key=new-value
Ersetzen Sie example-plugin
mit der ID oder dem Namen des Plugins, auf das Sie abzielen. Der Wert des setting-key
des Plugins Die Einstellung wird auf new-value
aktualisiert .
Die verfügbaren Einstellungen variieren natürlich von Plugin zu Plugin. Sie sollten in der Beschreibung des Plugins auf Docker Hub dokumentiert sein. Die Docker-CLI hat keinen integrierten Befehl zum Anzeigen aller verfügbaren Einstellungen für ein Plug-in, aber sie werden in docker plugin inspect
angezeigt Ausgang. Suchen Sie nach den Settings
Feld in der JSON-Darstellung eines Plugins; es enthält Objekte mit Name
und Settable
Felder für Optionen, die Sie über die CLI ändern können.
Aktualisieren Ihrer Plugins
Plugins werden mit dem docker plugin update
aktualisiert Befehl. Wie die anderen Befehle nimmt es eine Plugin-ID oder ein Tag als Argument.
Beim Upgrade eines Plugins wird die neueste auf Docker Hub verfügbare Version heruntergeladen und installiert. Wenn Sie bereits die neueste Version verwenden, installiert der Befehl die aktuelle Version neu. Sie werden aufgefordert, dem Plug-in alle erforderlichen neuen Berechtigungen zu erteilen. Der --grant-all-permissions
Flag wird akzeptiert, um die Eingabeaufforderung in Umgebungen zu überspringen, in denen eine interaktive Eingabe nicht möglich ist.
Es gibt keine Möglichkeit, alle Plugins auf Ihrem System mit einem Befehl zu aktualisieren. Am besten abonnieren Sie die Veröffentlichungsankündigungen der Anbieter Ihrer Plugins und wenden dann Updates auf Ihre Installation an, sobald sie verfügbar sind. Dadurch wird sichergestellt, dass Ihre Plugins sicher bleiben und unterstützt werden.
Zusammenfassung
Mit dem Plug-in-Ökosystem von Docker können Sie Docker Engine zusätzliche Funktionen hinzufügen. Plugins befinden sich auf Docker Hub und können von Ihrem Terminal aus installiert werden. Die CLI enthält einen Plug-in-Updater, der jedoch nur mit einem einzelnen Plug-in gleichzeitig funktioniert, nicht mit Ihrem gesamten Katalog.
Nachdem Sie nun wissen, wie Plug-ins verwendet und verwaltet werden, können Sie Docker Hub durchsuchen, um Optionen zur Verbesserung Ihres Workflows zu finden. Das Elastic Logging Plugin streamt Docker-Containerprotokolle zu einem Elastic-Stack-Cluster, vSphere for Docker ermöglicht Ihnen die Verwendung von VMWare vSphere-Speicher für Ihre persistenten Volumes, und Weave Net bringt Multicast-verschlüsselte Netzwerke zu Docker. Wenn Sie nicht sehen, was Sie brauchen, verwenden Sie die Plugin-API, um zu versuchen, Ihre eigene Lösung zu schreiben, die Sie über den Hub für die breitere Community veröffentlichen können.