Docker hat die Art, wie wir Software entwickeln und betreiben, revolutioniert. Container ermöglichen es, Anwendungen mit allen Abhängigkeiten zu verpacken und überall gleich auszuführen. In diesem Artikel erklären wir die Grundlagen.
Was ist Docker?
Docker ist eine Plattform zur Containerisierung von Anwendungen. Ein Container ist eine isolierte Umgebung, die alles enthält, was eine Anwendung zum Laufen braucht: Code, Laufzeitumgebung, Bibliotheken und Systemtools.
Der Unterschied zu virtuellen Maschinen: Container teilen sich den Kernel des Host-Systems und sind dadurch deutlich leichtgewichtiger als VMs. Ein Container startet in Sekunden statt Minuten.
Wichtige Begriffe
Image
Ein Image ist eine Vorlage für Container. Es enthält das Betriebssystem, die Anwendung und alle Abhängigkeiten. Images sind unveränderlich und werden aus einem Dockerfile gebaut.
Container
Ein Container ist eine laufende Instanz eines Images. Sie können mehrere Container vom selben Image starten - jeder ist isoliert und unabhängig.
Dockerfile
Eine Textdatei mit Anweisungen zum Bauen eines Images. Beispiel:
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]Registry
Ein Repository für Images. Docker Hub ist die öffentliche Standard-Registry. Sie können auch private Registries betreiben.
Docker installieren
Ubuntu/Debian
# Abhängigkeiten installieren
apt-get update
apt-get install ca-certificates curl gnupg
# Docker GPG-Key hinzufügen
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Repository hinzufügen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker installieren
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginInstallation prüfen
docker --version
docker run hello-worldDie wichtigsten Docker-Befehle
Container starten
# Container im Vordergrund starten
docker run nginx
# Container im Hintergrund starten (-d = detached)
docker run -d nginx
# Container mit Port-Mapping starten
docker run -d -p 8080:80 nginxContainer verwalten
# Laufende Container anzeigen
docker ps
# Alle Container anzeigen (auch gestoppte)
docker ps -a
# Container stoppen
docker stop <container-id>
# Container löschen
docker rm <container-id>Images verwalten
# Images auflisten
docker images
# Image herunterladen
docker pull nginx:latest
# Image löschen
docker rmi nginx:latestPraxisbeispiel: Nginx-Webserver
Starten Sie einen Nginx-Webserver mit einer eigenen HTML-Seite:
# Verzeichnis erstellen
mkdir ~/meine-webseite
echo "<h1>Hallo Docker!</h1>" > ~/meine-webseite/index.html
# Container mit Volume starten
docker run -d -p 80:80 -v ~/meine-webseite:/usr/share/nginx/html nginxÖffnen Sie http://ihre-server-ip im Browser - Sie sehen Ihre HTML-Seite.
Wann Docker einsetzen?
Gut geeignet für:
- Microservices und Web-Anwendungen
- Entwicklungsumgebungen (gleiche Umgebung für alle Entwickler)
- CI/CD-Pipelines
- Einfaches Deployment und Skalierung
Weniger geeignet für:
- Desktop-Anwendungen mit GUI
- Anwendungen, die direkten Hardware-Zugriff brauchen
- Sehr ressourcenintensive Monolithen
Fazit
Docker ist aus der modernen Softwareentwicklung nicht mehr wegzudenken. Die Lernkurve ist anfangs steil, aber die Vorteile - Portabilität, Reproduzierbarkeit und einfaches Deployment - sind enorm. Starten Sie mit einfachen Containern und arbeiten Sie sich zu Docker Compose und Orchestrierung vor.