Ein Sprichwort aus der Schifffahrt sagt im übertragenen Sinne: Auf jedem Containerschiff, das dampft und segelt, ist einer, der die Dienste regelt. Eine Idee, die maßgeblicher Treiber für den Erfolg von Docker ist, sind sogenannte Microservices, die jeder einen eigenen Container als Laufzeitumgebung erhalten. Dienste also, die sich genau einer Aufgabe widmen und sich separat von anderen benötigten oder abhängigen Diensten installieren und verwalten lassen. Viele moderne Anwendungen sind eine Kombination unterschiedlicher voneinander abhängiger Komponenten, die sich im Grunde separat als einzelne Dienste betreiben lassen. Eine organisatorische Trennung erlaubt die Nutzung und Wartung einzelner Bestandteile, ohne direkt alle Teile der Anwendung zu beeinträchtigen.
Verwenden Sie sonst mehrere Anwendungen auf demselben Hostsystem, sind Probleme bei der Auflösung von Abhängigkeiten vorprogrammiert. Können Sie für jede Anwendung die Abhängigkeiten aber in einem Container bündeln, stellen Sie mit Docker auf demselben Host schnell mehrere Versionen von Systembibliotheken oder Datenbanken für unterschiedliche Anwendungen zur Verfügung. Dabei lassen sich alle Abhängigkeiten direkt in den einen Container der Anwendung integrieren.
Der Betrieb unterschiedlicher Dienste innerhalb eines Containers ist zwar am Ende auch zielführend, widerspricht aber der Grundidee der Isolation einzelner Dienste. Lassen sich die abhängigen Dienste über ein Netzwerk-Protokoll anbinden, erstellen Sie mit Docker eigene virtuelle Netzwerke und starten für jeden Dienst einen eigenen Container. Die notwendige Kommunikation zwischen den Komponenten findet dann über Containergrenzen hinweg statt.
Um Ihnen die Verwaltung mehrerer Container, notwendiger Netzwerke und globaler Einstellungen von Anwendungen mit Docker zu erleichtern, gibt es Compose. Für den nun folgenden Teil gehen wir davon aus, dass Sie Docker bereits verwendet haben, dass Sie wissen, wie Sie mit
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.