Docker – Software entwickeln und deployen mit Containern
Adrian Mouats gehört wohl zu den besseren Docker-Bücher, dessen deutsche Übersetzung gegenüber dem englischen Original zudem leicht aktualisiert wurde.
- Michael MĂĽller
Adrian Mouat
Docker
Software entwickeln und deployen mit Containern
dpunkt, 2016
XVIII + 348 Seiten, € 36,90
ISBN 978-3-86490-384-7
Kaum eine andere Software hat in den letzten Jahren eine solch rasante Verbreitung gefunden wie Docker. Bieten die Container doch eine recht gute Isolierung der Ablaufumgebung bei deutlich geringerem Aufwand im Vergleich zu einer virtuellen Machine. Auf einer einzelnen Linux-Maschine lassen sich problemlos zahlreiche Container starten. Damit kann Software zusammen mit einer leichtgewichtigen Umgebung verteilt und betrieben werden. Und weil das so einfach ist, kann die Software in kleine Einheiten unterteilt werden – nicht von ungefähr harmonieren Containerisierung und Microservices gut miteinander.
Auch gemessen an der Zahl der Bücher ist Docker ein hochaktuelles Thema. Und die Bücher variieren stark. So lernt der Leser in Deepak Vohras "Pro Docker"-Buch (apress 2016) beispielsweise gerade mal, wie Docker installiert und ein Container gestartet wird. Sodann lernt er den Einsatz unterschiedlicher Images, insbesondere für den Einsatz bei Big Data. In vorliegendem Buch lernen Leser ebenfalls, wie sie Docker zum Laufen bringen und wie sie fertige Container-Images herunterladen und starten. Aber hier geht es im Wesentlichen nicht um die Images, sondern um Docker selbst. Und so beginnt Mouat mit wenigen Seiten Hintergrund, Geschichte, Installation und dem erwähnten Start eines Docker-Images. Doch dann zeigt er grundlegende Befehle, um Container zu starten, zu stoppen, zu manipulieren, Docker-Files zu erstellen und daraus neue Images. Hier geht es nicht darum, Docker zu nutzen, sondern zu verstehen. Dies stellt er jedoch nicht in Form einer Erläuterung der Docker-API dar, sondern anhand praktischer Kommando-Aufrufe. Er bildet neben den Kommandos zwar auch deren Ausgabe ab, sodass Leser erkennen können, was passiert, doch diese Form verführt schon mal zum Überlesen. Und so sollte das Buch nicht einfach von vorne bis hinten gelesen werden, sondern direkt in die Tat umgesetzt und praktisch nachvollzogen, eben durchgearbeitet werden.
Während Leser so schnell erste Schritte mit Docker gehen können, liefert der Autor anschließend ein vertiefendes Kapitel, in dem er wichtige Befehle nicht praktisch zeigt, sondern einen nach dem anderen erläutert, bei dem Wichtigsten, dem run, geht er dabei auf viele Details der Befehls-Optionen ein. Aber auch Dateisystem, Netzverbindungen und einiges andere mehr sind Themen dieser Vertiefung.
Richtig interessant wird es, wenn Mouat eine kleine Applikation zum Zeichnen von Identity-Icons erstellt. Nicht das diese einen besonderen geschäftlichen Mehrwert bringt, das Tolle daran, ist wie er dies mittels dreier Teilapplikationen aufbaut, die jeweils im eigenen Container laufen. So nebenher lernen Leser über Microservices. Und diese Applikationen lässt der Autor im weiteren Verlauf des Buchs in immer neuer Form miteinander kommunizieren. Müssen sie einander direkt referenzieren? Oder finden sie mittels Registry oder gar Magie zusammen? Dabei legt er eine Applikation auch schon mal mehrfach aus – horizontale Skalierung mittels Containerstruktur.
Container deployen, Container testen, ĂĽberwachen und protokollieren, vernetzen und einen Schwarm aufbauen. Aber auch Ăśberlegungen zur Sicherheit von Containern und einer darauf basierenden Struktur. Kurz, der Autor bietet (fast) alles, was zum erfolgreichen Einsatz von Docker erforderlich ist. Lassen sich Leser auf den Stil des Autors ein, lernen sie Docker und weite Teile des Docker-Universums kennen. Und die Referenz zum Nachschlagen gibt es dann auf den Docker-Seiten selbst. Insgesamt sicherlich eines der besseren Docker-BĂĽcher, dessen deutsche Ăśbersetzung gegenĂĽber dem englischen Original zudem leicht aktualisiert wurde.
Michael MĂĽller
ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen.
(ane)