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-plugin

Installation prüfen

docker --version
docker run hello-world

Die 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 nginx

Container 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:latest

Praxisbeispiel: 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.