Zum Inhalt springen
Kategorien: IT

Docker

Was ist Docker?

Docker ist eine Plattform, mit der Entwickler:innen Anwendungen in Containern erstellen, ausführen und bereitstellen. Ein Container enthält den Anwendungscode, benötigte Dateien, Bibliotheken und Einstellungen. Dadurch läuft eine Anwendung auf dem lokalen Rechner, auf einem Server oder in einer Cloud-Umgebung weitgehend gleich.

Im Unterschied zur klassischen Virtualisierung startet Docker kein vollständiges eigenes Betriebssystem pro Anwendung. Container teilen sich den Kernel des Host-Systems, häufig Linux. Das macht sie leichtgewichtig, schnell startbar und gut automatisierbar.

Wie Docker mit Containern funktioniert

Docker arbeitet mit Images und Containern. Ein Image ist eine Vorlage, aus der ein Container gestartet wird. Es besteht aus mehreren Schichten, auch Layer genannt. Jede Änderung, etwa eine installierte Bibliothek oder kopierte Dateien, bildet eine neue Schicht.

Der Docker-Daemon verwaltet Images, Container, Netzwerke und Speicher. Nutzer:innen steuern ihn über Befehle wie „docker run“, „docker build“ oder „docker ps“. Ein Dockerfile beschreibt, wie ein Image gebaut wird. Darin stehen zum Beispiel das Basis-Image, Installationsschritte, Umgebungsvariablen und der Startbefehl der Anwendung.

Vorteile von Docker für Entwickler:innen und Betrieb

  • Konsistente Umgebungen: Anwendungen laufen in Entwicklung, Test und Produktion mit denselben Abhängigkeiten.
  • Schneller Start: Container benötigen weniger Ressourcen als virtuelle Maschinen und starten meist in Sekunden.
  • Einfache Bereitstellung: Teams können Images versionieren, teilen und automatisiert auf Server ausrollen.
  • Bessere Skalierung: Einzelne Dienste lassen sich getrennt starten, aktualisieren und vervielfachen.

Typische Einsatzgebiete von Docker

Docker eignet sich besonders für Webanwendungen, Microservices, Testumgebungen, lokale Entwicklungsumgebungen und Continuous Integration. Entwickler:innen können etwa eine Datenbank, ein Backend und ein Frontend als getrennte Container starten. So lassen sich Abhängigkeiten klar trennen und Fehler leichter eingrenzen.

In größeren Umgebungen wird Docker häufig mit Kubernetes kombiniert. Kubernetes übernimmt dann die Orchestrierung, verteilt Container auf mehrere Server, überwacht Zustände und startet Dienste bei Ausfällen neu.

Dockerfile, Images und Layer in der Praxis

Ein typischer Ablauf beginnt mit einem Dockerfile. Darin wählt ein Team ein Basis-Image, zum Beispiel ein Linux-Image mit einer bestimmten Laufzeitumgebung. Danach kopiert Docker Dateien in das Image, installiert Pakete und definiert den Befehl zum Start der Anwendung.

Beim Build erzeugt Docker daraus ein Image mit mehreren Layern. Unveränderte Layer kann Docker wiederverwenden. Das beschleunigt Builds und spart Speicher. Wird später nur der Anwendungscode geändert, müssen nicht alle Schichten neu erstellt werden.

Grenzen und häufige Missverständnisse

Docker ersetzt keine Sicherheitsstrategie. Container isolieren Prozesse, aber sie sind keine vollständigen virtuellen Maschinen. Falsch konfigurierte Rechte, unsichere Images oder sensible Daten in Images können Risiken verursachen.

Auch Persistenz erfordert Planung. Datenbanken sollten ihre Daten nicht nur im Container speichern, weil Container gelöscht und neu erstellt werden können. Dafür nutzt Docker Volumes oder externe Speichersysteme.

FAQ

Ist Docker dasselbe wie eine virtuelle Maschine?

Nein. Eine virtuelle Maschine bringt ein vollständiges Betriebssystem mit. Docker-Container teilen sich den Kernel des Hosts und enthalten vor allem Anwendung, Abhängigkeiten und Konfiguration.

Wofür braucht man ein Dockerfile?

Ein Dockerfile beschreibt reproduzierbar, wie ein Image entsteht. Es dokumentiert Installationen, Dateien, Befehle und Einstellungen, damit Teams denselben Container jederzeit neu bauen können.

Welche Rolle spielt Kubernetes bei Docker?

Kubernetes verwaltet viele Container über mehrere Server hinweg. Docker kann Container bereitstellen, während Kubernetes deren Verteilung, Skalierung und Überwachung koordiniert.

Lust, den Beitrag zu teilen?

Über den:die Autor:in

Thorsten Mücke

Thorsten Mücke ist Produktmanager bei der Haufe Akademie und Experte für IT-Kompetenz. Mit über 20 Jahren Erfahrung in der IT-Weiterbildung und fundiertem Wissen zu IT, künstlicher Intelligenz und neuen Technologien gestaltet er innovative Lernangebote für die Herausforderungen der digitalen Welt.

Zum Glossar «