Docker: Anwendungen in Containern betreiben
Was ist Docker?
Docker ist eine quelloffene Plattform für Container-Virtualisierung. Eine Anwendung wird samt aller benötigten Abhängigkeiten und Bibliotheken in einen isolierten Container verpackt. Dadurch geraten sich mehrere Anwendungen auf demselben Server nicht mehr ins Gehege, weil jede ihre eigene Umgebung mitbringt.
Der Unterschied zur virtuellen Maschine
Eine virtuelle Maschine bringt ein vollständiges Betriebssystem mit. Ein Container nutzt den Kernel des Hosts und enthält nur das, was die Anwendung selbst braucht. Das Ergebnis: deutlich geringerer Ressourcenbedarf und kürzere Startzeiten. Dafür ist die Isolation schwächer als bei einer VM – ein Punkt, der bei der Architekturentscheidung eine Rolle spielen sollte.
Die zentralen Werkzeuge
- Dockerfile – eine Textdatei mit den Bauanweisungen für ein Image
- Docker Compose – beschreibt mehrere zusammengehörige Container samt Netzwerken und Volumes in einer Datei
- Docker Swarm – verteilt Container über mehrere Server hinweg
Für den Betrieb größerer Cluster hat sich in der Praxis überwiegend Kubernetes durchgesetzt; Compose bleibt für überschaubare Installationen auf einem Host die pragmatischere Wahl.
Wo Docker seine Stärken ausspielt
- Portabilität: Ein Image läuft auf dem Notebook genauso wie auf dem Server – gleiche Umgebung, gleiches Verhalten.
- Nachvollziehbarkeit: Die Konfiguration steht in Dateien, die versioniert werden können, statt in manuell gepflegten Servern.
- Effizienz: Mehr Dienste auf derselben Hardware, weil kein Betriebssystem-Overhead je Anwendung anfällt.
- Reproduzierbarkeit: Ein Rollback bedeutet, das vorherige Image zu starten.
Fazit
Docker ist für viele selbst gehostete Anwendungen der heute übliche Weg – von Nextcloud über Mailcow bis zum Ticketsystem. Der Nutzen entsteht allerdings erst mit einem durchdachten Konzept für Updates, Netzwerke und Datensicherung. Bei Aufbau und Betrieb solcher Umgebungen unterstütze ich gerne.
