Dive, Dusty, Hyper & Co.

Diese Open-Source-Tools machen Docker besser

24.04.2019
Von 
Serdar Yegulalp schreibt für unsere US-Schwesterpublikation Infoworld.
Unternehmen, die eine Microservices-basierte Architektur planen, arbeiten in der Regel mit Docker-Containern. Inzwischen gibt es ein großes Ökosystem an Drittanbieter-Tools für Docker-Entwickler. Hier ein kleiner Überblick.
Software-Entwicklung mithilfe von Container-Technologie setzt sich immer mehr durch.
Software-Entwicklung mithilfe von Container-Technologie setzt sich immer mehr durch.
Foto: MAGNIFIER - shutterstock.com

Folgende Tools können Software-Entwicklern helfen, produktiver mit Docker zu arbeiten.

Dive - Transparenz auf allen Ebenen

Docker-Images sind vergleichbar mit Sandwiches: Sie verfügen über mehrere Layer, die aber oft nicht klar erkennbar sind. Entwickler wissen daher manchmal nicht genau, wie viele Layer es gibt und was diese verbergen. Mit Dive lassen sich die Ebenen in einem Docker-Image Schicht für Schicht über eine interaktive Benutzeroberfläche visuell erkunden. Man kann erkennen, welche Zutaten in den jeweiligen Schichten stecken, ob es redundante Inhalte gibt, wie jeder Layer den darunterliegenden beeinflusst und wo Speicherplatz verschwendet wird.

Docker Compose UI - das bessere User Interface

Um mehrere Container übersichtlich verwalten und verlinken zu können, gibt es Docker Compose. Ein vom MIT-lizenziertes Projekt ist Docker Compose UI. Es stattet Docker Compose mit einer webbasierten Benutzeroberfläche aus, die mit dem Python Flask Framework erstellt wurde. Die Container können lokal oder auf einem Host ausgeführt werden, während Docker Compose UI selbst in einem Docker Container bereitgestellt wird.

Dockly - managen via Kommandozeile

Eine Open-Source-Alternative zur Docker-CLI ist Dockly. Damit können fortgeschrittene Entwickler Docker-Container übersichtlich via Kommandozeile managen. Dockly listet alle Container auf, die auf einem System vorhanden sind. Entwickler können Container in einem Fenster starten, stoppen, löschen und untersuchen.

Dusty - für die smarte Container-Verwaltung

Eine Alternative zu Lösungen wie Docker Compose oder Vagrant für die Verwaltung von Containern ist Dusty. Vagrant habe seine Stärken in der Provisionierung von Virtual Machines (VMs) und werde oft im Zusammenhang mit Configuration-Management-Software wie Chef oder Puppet genutzt, um Statusveränderungen über mehrere User hinweg zu konfigurieren, so die Dusty-Urheber. In Sachen Effizienz, schnelle Updates und Verwaltung isolierter Docker-Container biete Dusty aber Vorteile.

Auch gegenüber Docker Compose, das von den Dusty-Machern geschätzt und genutzt wird, um Container-Lebenszyklen zu verwalten, habe Dusty Vorzüge. Das Apple-System OS X werde besser unterstützt und es gebe ein vereinfachtes Specs-Modell, das die Verbindung von Containern während der Laufzeit so ermögliche, wie man sie brauche. So ließen sich Container einfach an die individuellen Anforderungen anpassen. Besonders wichtig: Dusty wurde für Entwickler im Enterprise geschaffen. So ergeben sich Vorteile beim Testen, dem Teilen von Aufgaben und in der Benutzerfreundlichkeit.

Elsy - ein Build-Tool für Kenner

Als etwas eigenwilliges, mehrsprachiges Build-Tool, das Docker und Docker Compose nutzt, wird Elsy beschrieben. Es ermöglicht den konsistenten Aufbau eines Software-Repository über verschiedene Umgebungen hinweg und hält dabei das Tooling, das für die Builds erforderlich ist, unabhängig von der verwendeten Sprache in Grenzen. Ein angekündigtes Feature ist der "Blackbox-Test", der es erlauben soll, jeden Container so zu testen, wie es seinem künftigen produktiven Einsatz entspricht. So wird beispielsweise für jeden Service, der eine Datenbank benötigt, ein Datenbank-Container eingerichtet. Elsy setzt die Testumgebung anschließend automatisch wieder außer Betrieb.

Habitus - für mehrstufige Container-Builds

Ein weiteres Docker-basiertes Build-Tool ist Habitus. Es nutzt ein Docker-File und eine build.yml-Datei, um mehrstufige Container-Builds zu erstellen, die eine beliebige Anzahl von Befehlen enthalten. Jeder Schritt im Build kann so gestaltet werden, dass er sich auf einen vorherigen Schritt stützt, um sicherzustellen, dass alle kniffligen mehrstufigen Abhängigkeiten korrekt funktionieren. Habitus unterstützt auch die Einbindung von Secrets in einen Build-Prozess, ohne Spuren im Image zu hinterlassen.

Hyper - Images auf jedem Hypervisor

Als "Hypervisor-agnostisches Werkzeug, das es Nutzern ermöglicht, Docker-Images auf jedem Hypervisor auszuführen", verwendet Hyper Docker, QEMU und Xen, um seine Ziele zu erreichen. Die Entwickler behaupten, dass Hyper nur geringe Ressourcen verbrauche (28 MB), mit der Geschwindigkeit eines Containers (und nicht einer VM) hochfahre und besonders leistungsfähig sei. Ein vorgeschlagener Use Case für Hyper ist die Erstellung mandantenfähiger, Docker-basierter Anwendungen.

Kitematic - ein GUI für das Container-Management

Eine grafische Benutzeroberfläche für die Verwaltung von Docker-Containern unter MacOS, Ubuntu Linux und Windows bietet Kitematic. Weitere Annehmlichkeiten sind die automatische Offenlegung von Container-Volumendaten über das File System, die Bereitstellung eines integrierten CLI für Docker und die automatische Synchronisierung des Status, um Änderungen an Docker vorzunehmen (zum Beispiel wenn neue Container-Images hinzugefügt werden).

Logspout - Log-Daten aus Containern verwalten

In der Unix-Welt gibt es eine lange Tradition, kleine Programme zu kombinieren, um große Probleme zu lösen. Nach diesem Vorbild verwaltet Logspout Log-Daten aus Docker-Containern. Das Tool leitet alle Logs (hauptsächlich stdout und stderr) aus allen Containern auf einem bestimmten Host, damit Entwickler dort diverse Ziele verfolgen können. Die aggregierten Log-Protokolle können in Echtzeit durch einfaches Lesen eines HTTP-Streams betrachtet uind analysiert werden.

Portainer - zentrale Sicht aus alles

Auch ein vergleichsweise einfacher Docker-Stack kann viele bewegliche Teile haben: Container, Images, Netzwerke, Volumes, Secrets. Portainer bietet eine Web-Benutzeroberfläche für Docker-Umgebungen - unabhängig davon, ob es sich um einzelne Hosts oder Cluster handelt - und liefert eine Sicht aus alles, was ausgeführt wird. Das Ganze wird in der bestehenden Docker-Infrastruktur als Container bereitgestellt.

Whalebrew - Hilfe für MacOS-Nutzer

MacOS-Anwender sollten mit dem Paketmanager Homebrew vertraut sein. Mit Whalebrew können Sie Docker-Images installieren und diese direkt von der Befehlszeile aus über einen Alias ausführen, als handle es sich um lokal installierte ausführbare Dateien. Pakete, die über das Repository von Whalebrew kuratiert werden, funktionieren am besten, aber theoretisch sollte jedes Docker-Bild, das CLI-Befehle verwendet, funktionieren.