Docker Tutorial #1: Was ist Docker?
Einführung in die Container-Technologie
Was ist Docker?
Docker ist eine Open-Source-Plattform zur Automatisierung der Bereitstellung von Anwendungen in leichtgewichtigen, portablen Containern. Die Technologie revolutioniert seit ihrer Einführung 2013 die Art und Weise, wie Software entwickelt, getestet und bereitgestellt wird.
Das Container-Konzept
Ein Docker-Container ist eine standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten verpackt. Dadurch läuft die Anwendung schnell und zuverlässig von einer Computing-Umgebung zur anderen.
Wie funktioniert ein Container?
Stellen Sie sich einen Container wie einen Frachtcontainer vor. Genau wie ein Frachtcontainer standardisierte Abmessungen hat und überall transportiert werden kann – ob per Schiff, LKW oder Bahn – funktioniert ein Docker-Container auf jedem System, das Docker unterstützt.
Der Container enthält:
- Die Anwendung selbst
- Alle benötigten Bibliotheken
- Systemtools
- Laufzeitumgebung
- Konfigurationsdateien
Die wichtigsten Vorteile von Docker
1. Portabilität
Das größte Problem der Softwareentwicklung war lange Zeit: „Es funktioniert auf meinem Rechner!“ Docker löst dieses Problem elegant. Ein Container, der auf Ihrem Laptop läuft, verhält sich exakt gleich auf dem Staging-Server und in der Produktion.
Beispiel aus der Praxis: Ein Entwickler erstellt eine Node.js-Anwendung auf seinem MacBook. Mit Docker läuft diese Anwendung ohne Änderungen auf dem Linux-Server des Kunden, obwohl die Betriebssysteme völlig unterschiedlich sind.
2. Isolation
Jeder Container läuft isoliert vom Host-System und von anderen Containern. Das bedeutet:
- Keine Konflikte zwischen verschiedenen Anwendungen
- Erhöhte Sicherheit
- Eine fehlerhafte Anwendung beeinflusst andere nicht
Beispiel: Sie können PHP 7.4 und PHP 8.2 parallel auf demselben Server laufen lassen, ohne dass sich die Versionen in die Quere kommen.
3. Effizienz
Docker-Container sind extrem leichtgewichtig:
- Startzeit: Sekunden statt Minuten
- Ressourcenverbrauch: Minimal, da sie sich den Kernel des Host-Systems teilen
- Speicherplatz: Ein Container-Image ist oft nur 50-200 MB groß
Vergleich:
- Virtuelle Maschine starten: 2-5 Minuten
- Docker-Container starten: 2-5 Sekunden
4. Versionierung und Rollbacks
Docker-Images können versioniert werden wie Code:
bash
myapp:1.0.0
myapp:1.0.1
myapp:1.1.0
Wenn Version 1.1.0 Probleme macht, können Sie in Sekunden zu 1.0.1 zurückkehren.
5. Skalierbarkeit
Bei plötzlich hoher Last können Sie schnell zusätzliche Container hochfahren:
bash
docker run -d myapp:latest
docker run -d myapp:latest
docker run -d myapp:latest
In wenigen Sekunden laufen drei Instanzen Ihrer Anwendung parallel.
Wofür wird Docker eingesetzt?
Webentwicklung
Docker ist ideal für moderne Webprojekte:
- PHP-Anwendungen: Laravel, Symfony, WordPress
- JavaScript: Node.js, React, Vue.js
- E-Commerce: Shopware, Magento, WooCommerce
- CMS-Systeme: TYPO3, Drupal, Joomla
Microservices-Architektur
Große Anwendungen werden in kleine, unabhängige Services aufgeteilt. Jeder Service läuft in einem eigenen Container.
Beispiel E-Commerce:
- Container 1: Frontend (React)
- Container 2: API-Backend (Node.js)
- Container 3: Produktsuche (Elasticsearch)
- Container 4: Zahlungsabwicklung (PHP)
- Container 5: Datenbank (MySQL)
CI/CD-Pipelines
Docker ermöglicht automatisierte Test- und Deployment-Prozesse:
- Code-Änderung wird gepusht
- Docker-Container wird automatisch gebaut
- Automatisierte Tests laufen im Container
- Bei Erfolg: Automatisches Deployment
Entwicklungsumgebungen
Statt aufwendiger lokaler Installation:
bash
<em># Ohne Docker: Stunden für Setup</em>
<em># Installation von PHP, MySQL, Nginx, Redis...</em>
<em># Konfiguration, Fehlerbehebung...</em>
<em># Mit Docker: Minuten für Setup</em>
docker compose up -d
<em># Fertig!</em>
Docker in Zahlen
- Über 20 Millionen Entwickler nutzen Docker
- Mehr als 13 Millionen Container-Images auf Docker Hub
- Von allen Fortune 100-Unternehmen eingesetzt
- Unterstützt von allen großen Cloud-Anbietern (AWS, Azure, Google Cloud)
Häufige Anwendungsfälle
1. Lokale Entwicklung
bash
<em># Komplette Entwicklungsumgebung in Sekunden</em>
docker run -d -p 3306:3306 mysql:8.0
docker run -d -p 6379:6379 redis:alpine
docker run -d -p 9200:9200 elasticsearch:8.0
2. Testing
bash
<em># Tests in isolierter Umgebung</em>
docker run --rm myapp:latest npm test
3. Production Deployment
bash
<em># Identische Umgebung wie Development</em>
docker run -d -p 80:80 myapp:production
Wer profitiert von Docker?
Entwickler
- Schnelleres Setup neuer Projekte
- Keine „Works on my machine“-Probleme
- Einfaches Testen verschiedener Versionen
- Fokus auf Code statt Infrastruktur
DevOps-Engineers
- Standardisierte Deployment-Prozesse
- Einfache Skalierung
- Bessere Ressourcen-Auslastung
- Vereinfachtes Monitoring
Unternehmen
- Schnellere Time-to-Market
- Reduzierte Infrastrukturkosten
- Höhere Stabilität und Verfügbarkeit
- Moderne, zukunftssichere Architektur
Docker vs. traditionelle Deployment-Methoden
Traditionell: LAMP-Stack auf einem Server
Problem: Alle Anwendungen teilen sich Ressourcen
- PHP-Version für alle gleich
- Eine fehlerhafte App kann andere beeinflussen
- Schwierig zu skalieren
- Updates sind riskant
Mit Docker: Isolierte Container
Vorteile:
- Jede App hat eigene PHP-Version
- Komplette Isolation
- Einzelne Apps skalierbar
- Updates risikoarm (Rollback möglich)
Ist Docker schwer zu lernen?
Gute Nachricht: Die Grundlagen sind einfach!
Für den Einstieg reichen wenige Befehle:
bash
docker pull nginx <em># Image herunterladen</em>
docker run -d nginx <em># Container starten</em>
docker ps <em># Laufende Container anzeigen</em>
docker stop <id> <em># Container stoppen</em>
Nach 1-2 Stunden kennen Sie die wichtigsten Befehle. Nach einer Woche können Sie produktiv damit arbeiten.
Voraussetzungen für Docker
System-Anforderungen
Linux:
- 64-Bit-Kernel
- Mindestens Kernel-Version 3.10
Windows:
- Windows 10 64-Bit Pro/Enterprise/Education
- Hyper-V aktiviert (oder WSL 2)
macOS:
- macOS 10.15 oder neuer
- Intel- oder Apple-Silicon-Prozessor
Technisches Wissen
Sie sollten vertraut sein mit:
- Grundlegende Kommandozeilen-Befehle
- Grundlagen von Webservern und Datenbanken
- Allgemeines Verständnis von Softwareentwicklung
Kostenfaktor
Docker selbst ist kostenlos (Open Source). Es gibt kostenpflichtige Enterprise-Versionen, aber für die meisten Projekte reicht die kostenlose Community Edition völlig aus.
Zusammenfassung
Docker ist eine revolutionäre Technologie, die:
Entwicklung und Deployment vereinfacht
Konsistenz über alle Umgebungen garantiert
Ressourcen effizient nutzt
Schnelle Skalierung ermöglicht
Von der Industrie als Standard akzeptiert ist
Im nächsten Tutorial schauen wir uns an, wie sich Docker von virtuellen Maschinen unterscheidet und warum Container die bessere Wahl für moderne Anwendungen sind.

Author: Andreas Lang
Andreas Lang konzentriert sich seit zwei Jahrzehnten auf die Webentwicklung und Webdesign mit dem Schwerpunkt PHP, Laravel und Javascript und betreut seine Kunden mit Herz und Seele in allen Bereichen von Entwicklung, Design, Suchmaschinenoptimierung, IT-Recht, IT-Sicherheit etc.

