Docker Schnellstart – Warum Multi-Container?
Willkommen im dritten und letzten Modul des Docker-Schnellstart. Hier geht es um ein paar fortgeschrittenen Themen zu Docker.
Im letzten Modul haben wir gesehen, wie einfach und spaßig es ist, Anwendungen und kleine Webapp mit Docker zu betreiben. Wir haben mit einer einfachen statischen Website begonnen und dann eine Flask-App (die Kitty-App) ausprobiert. Beide konnten wir lokal und in der Cloud mit nur wenigen Befehlen ausführen. Eine Sache, die diese beiden Apps gemeinsam hatten, war, dass sie in einem einzigen Container liefen.
Wenn du schon etwas Erfahrung mit dem Betrieb von Diensten in der Produktion hast, weißt du wahrscheinlich bereits, dass Apps heutzutage in der Regel nicht mehr so einfach sind. Es ist fast immer eine Datenbank (oder eine andere Art von persistentem Speicher) involviert. Systeme wie Redis und Memcached sind mittlerweile fester Bestandteil der meisten Webanwendungsarchitekturen. Daher werden wir in diesem Abschnitt einige Zeit damit verbringen, zu lernen, wie man Anwendungen, die auf mehrere Dienste angewiesen sind, mit Docker ausführt.
Multi-Container Verwaltung in Docker
Insbesondere werden wir sehen, wie wir Multi-Container Docker Umgebungen betreiben und verwalten können. Warum Multi-Container, wirst du dich vielleicht fragen?
Nun, einer der wichtigsten Punkte von Docker ist die Art und Weise, wie es Services isoliert zur Verfügung stellt. Die Idee, einen Prozess mit seinen Abhängigkeiten in einer Sandbox (im Container) zu bündeln, ist das, was es so mächtig macht.
Genauso wie es eine gute Strategie ist, deine Anwendungs-Tiers zu entkoppeln, ist es ratsam, Container für jeden der Dienste getrennt zu halten. Jede Ebene hat wahrscheinlich unterschiedliche Ressourcenbedürfnisse und diese Bedürfnisse können mit unterschiedlichen Raten wachsen.
Indem wir die Tiers in verschiedene Container aufteilen, können wir jedem Tier mit dem am besten geeigneten Instanztyp, basierend auf den verschiedenen Ressourcenbedürfnissen zusammenstellen. Dies passt auch sehr gut zu der trendigen Microservices-Bewegung, die einer der Hauptgründe ist, warum Docker (oder jede andere Container-Technologie) an der Spitze der modernen Microservices-Architekturen steht.
In der nächsten Lektion werden wir uns eine Multi-Container Umgebung mit Docker Compose anschauen.