12 Open-Source-Tools, die Docker verbessern

Wenn Sie blinken, werden Sie möglicherweise einige der interessantesten Entwicklungen rund um Docker in diesen Tagen verpassen. Kubernetes bekommt möglicherweise mehr vom heißen Donner des neuen Tools, aber Docker bietet weiterhin "gerade genug" Container-Orchestrierung für die meisten Entwicklungsprojekte und Bereitstellungen.

Plus Docker verfügt über ein eigenes reichhaltiges Ökosystem an Tools von Drittanbietern, mit denen Docker erweitert, aufgepeppt oder weniger hartnäckig gestaltet werden kann. Hier sind 12 Open-Source-Kreationen, die von Docker einen Schub erhalten oder Docker einen Schub geben, Docker für bestimmte Anwendungsfälle nutzen oder die Arbeit mit Docker vereinfachen.

Tauchen

Docker-Bilder sind wie Sandwiches mit vielen Schichten. Vielleicht ist es besser zu sagen, dass sie wie Sandwiches in undurchsichtigen Verpackungen sind: Sie wissen nicht immer, wie viele Schichten es gibt oder was darin enthalten ist. Mit Dive können Sie die Ebenen in einem Docker-Bild über eine interaktive Benutzeroberfläche visuell erkunden. Sie können sehen, welche Inhaltsstoffe in jeder Schicht vorhanden sind, und bestimmen, wie jede Schicht die darunter liegende Schicht verändert hat (was hinzugefügt oder entfernt wurde). Sie können ein Image auch auf verschwendeten oder doppelten Speicherplatz analysieren und die Ergebnisse sogar an Ihre Pipeline für die kontinuierliche Integration weitergeben, sodass ein Image mit zu viel verschwendetem Speicherplatz den Erstellungsprozess nicht besteht.

Docker Compose UI

Docker Compose UI ist ein MIT-lizenziertes Projekt, das Docker Compose eine webbasierte Benutzeroberfläche bietet, die mit dem Python Flask Framework erstellt wurde. Container können lokal oder auf einem Remote-Host ausgeführt werden, und die Docker Compose-Benutzeroberfläche selbst ist zur Vereinfachung in einem Docker-Container verfügbar. Beachten Sie, dass einige der mit Docker Compose UI bereitgestellten Demoprojekte "aufgrund von Konflikten mit veröffentlichten Ports" nicht skaliert werden können.

Dockly

Die meisten Docker-Arbeiten werden über eine CLI oder eine Terminalschnittstelle ausgeführt, und die Standard-Docker-CLI sieht fast genauso aus wie jedes andere CLI-Programm. Dockly bietet eine Vollbild-Terminalschnittstelle für Docker - ein Dashboard im Textmodus aller ausgeführten Container, eine Live-Ansicht der Containerprotokolle und Nutzungsstatistiken sowie eine integrierte Shell-Registerkarte. 

Staubig

Dusty ist eine Docker-basierte, MIT-lizenzierte Entwicklungsumgebung, die die Verwendung von Docker Compose oder Vagrant für die Verwaltung von Containern verbessern soll. Die Entwickler von Dusty behaupten beispielsweise, dass Dusty ein einfacheres Spezifikationsmodell als Docker Compose hat und dass es die versionierte Isolierung von App-Abhängigkeiten und Aktualisierungen von Diensten besser als Vagrant handhabt. Dusty ermöglicht auch das Erstellen von Tests als Teil einer Spezifikation für eine Umgebung und ermöglicht es, gängige mehrstufige Prozeduren in ein einfach aufrufbares Skript umzuwandeln.

Elsy

Elsy wird mit Docker und Docker Compose als "ein eigenwilliges, mehrsprachiges Build-Tool" beschrieben. Elsy ermöglicht die konsistente Erstellung eines Software-Repositorys in verschiedenen Umgebungen und reduziert die für die Erstellung erforderlichen Tools auf ein Minimum, unabhängig davon, welche Sprache verwendet wird. Eine angepriesene Funktion  blackbox-testermöglicht es, jeden gebauten Container auf eine Weise zu testen, die seinen tatsächlichen Produktionsverbrauch widerspiegelt. Beispielsweise wird für jeden Dienst, der eine Datenbank benötigt, ein Datenbankcontainer eingerichtet, und Elsy wird die Testumgebung anschließend automatisch herunterfahren.

Gockerize

Hier ist eine für Fans der Go-Sprache. Gockerize ist ein BSD-lizenziertes Tool zum Erstellen statischer Go-Binärdateien und zum Verpacken dieser in minimale Go-Container. Gockerize wurde von den Leuten hinter AeroFS entwickelt und enthält Funktionen wie „die Möglichkeit, automatisch eine Reihe von Patches auf die Golang-Standardbibliothek anzuwenden; etwas, das zwar sehr selten benötigt wird, aber lebensrettend sein kann “, so der Blog-Beitrag, in dem das Projekt vorgestellt wird. Gockerize ist extern nicht auf viel angewiesen - nur auf Go, Docker 1.5 oder höher und die Bash-Shell.

Habitus

Habitus, ein weiteres Docker-basiertes Build-Tool, verwendet eine Docker-Datei und eine build.yml-Datei, um mehrstufige Container-Builds zu erstellen, die eine beliebige Anzahl beliebiger Befehle enthalten. Jeder Schritt im Build kann so ausgeführt werden, dass er sich auf einen vorherigen Schritt stützt, um sicherzustellen, dass schwierige mehrstufige Abhängigkeiten ordnungsgemäß funktionieren. Habitus unterstützt auch das Einbeziehen von Geheimnissen in einen Erstellungsprozess, ohne Spuren im Image zu hinterlassen.

Hyper

Hyper wird als "hypervisorunabhängiges Tool" bezeichnet, mit dem Sie Docker-Images auf jedem Hypervisor ausführen können. Hyper verwendet Docker, QEMU und Xen, um seine Ziele zu erreichen. Die Entwickler des Tools behaupten, dass Hyper nur minimale Ressourcen (28 MB) verwendet, mit der Geschwindigkeit eines Containers und nicht einer VM startet, eine hohe Leistung liefert und eine durch Hardware erzwungene Isolation für Anwendungen bietet. Ein vorgeschlagener Anwendungsfall für Hyper ist das Erstellen von Docker-basierten Anwendungen mit mehreren Mandanten.

Kitematisch

Manchmal möchten Sie nur eine GUI. Kitematic bietet Ihnen eine grafische Benutzeroberfläche zum Verwalten von Docker-Containern unter MacOS, Ubuntu Linux und Windows. Zu den weiteren praktischen Vorteilen von Kitematic gehören das automatische Anzeigen von Containervolumendaten über das Dateisystem, das Bereitstellen einer integrierten CLI für Docker und das automatische Synchronisieren des Status, um Änderungen an Docker anzupassen (z. B. wenn Sie neue Container-Images hinzufügen).

Logspout

Die Unix-Welt hat eine lange Tradition darin, kleine Programme zu kombinieren, um große Probleme zu lösen. Logspout wendet dieselbe Philosophie auf die Verwaltung von Protokollen aus Docker-Containern an. Logspout leitet alle Protokolle ( stdout und  stderrhauptsächlich) von allen Containern auf einem bestimmten Host an das Ziel weiter, das Sie für am besten halten. Die resultierenden aggregierten Protokolle können in Echtzeit einfach durch Lesen eines HTTP-Streams angezeigt werden.

Portainer

Selbst ein relativ einfacher Docker-Stapel kann viele bewegliche Teile haben: Container, Bilder, Netzwerke, Volumes, Geheimnisse. Es ist keine Lösung, all das in deinem Kopf im Auge zu behalten. Portainer bietet eine Web-Benutzeroberfläche für Docker-Umgebungen, unabhängig davon, ob es sich um einzelne Hosts oder Cluster handelt, und bietet eine einheitliche Ansicht aller von Ihnen ausgeführten Elemente. Verwaltung und Übersicht für alle gängigen Docker-Komponenten sind nur ein paar Klicks entfernt. Das Beste ist, dass das Ganze in Ihrer vorhandenen Docker-Infrastruktur als einzelner Container bereitgestellt wird.

Whalebrew

MacOS-Benutzer sollten mit Homebrew, dem Ad-hoc- Paketverwaltungssystem für MacOS , vertraut sein . Mit Whalebrew können Sie Docker-Images installieren und über einen Alias ​​direkt über die Befehlszeile ausführen, als wären sie lokal installierte ausführbare Dateien. Das Installieren von Paketen ist so einfach wie das Eingeben whalebrew install . Über das Whalebrew-Repository kuratierte Pakete funktionieren am besten, aber theoretisch sollte jedes Docker-Image funktionieren, das CLI-Befehle akzeptiert.