Docker

Docker ist eine Containerisierungs-Technologie, die es ermöglicht, Anwendungen mitsamt aller Abhängigkeiten isoliert auszuführen.

Docker ist eine Open-Source-Software, die die Bereitstellung von Anwendungen mithilfe von Containervirtualisierung vereinfacht. Container ermöglichen es Entwicklern, eine Anwendung mit allen ihren Abhängigkeiten (z. B. Bibliotheken, Datenbanken, Systemkonfigurationen) in ein standardisiertes Paket zu packen, das isoliert auf jedem Betriebssystem läuft.

Bedeutung

Docker löst das klassische Problem ‚Auf meinem Computer funktioniert es‘ (It works on my machine). Da der Container auf dem lokalen Entwicklungsrechner exakt dieselbe Laufzeitumgebung bereitstellt wie auf dem Produktionsserver (z. B. Kinsta), werden Deployment-Konflikte und Versionskonflikte bei PHP, Node.js oder Datenbanken vollständig eliminiert. Zudem beschleunigt Docker das Onboarding neuer Entwickler dramatisch.

Funktionsweise

Docker nutzt Betriebssystem-Virtualisierung des Linux-Kernels (wie Namespaces und Cgroups), um Prozesse voneinander zu isolieren. Dies ist im Vergleich zu klassischen Virtuellen Maschinen (VMs) extrem ressourceneffizient, da alle Container sich den Kernel des Host-Systems teilen und kein eigenes Betriebssystem booten müssen. Ein Dockerfile definiert das Image (die Bauanleitung), das über Docker Compose zu komplexen Multi-Container-Umgebungen (z. B. WordPress + MySQL + Redis) orchestriert wird.

Praxisbeispiel

Eine Webagentur entwickelt ein neues WordPress-Theme. Der Entwickler startet die lokale Entwicklungsumgebung mit dem Befehl ‚docker-compose up‘. Docker startet im Hintergrund drei isolierte Container: PHP 8.2 mit WordPress, eine MariaDB-Datenbank und einen Nginx-Webserver. Nach Fertigstellung wird das exakt identische Docker-Image auf dem Staging-Server gestartet.