Zum Inhalt springen
Docker Anfänger 20 min

Was ist Docker?

Docker ist der Standard fuer Container in der modernen Software-Entwicklung. Erfahre, was Container wirklich sind und warum sie alles veraendert haben.

Aktualisiert:
Inhaltsverzeichnis

Was ist Docker?

Docker ist eine Plattform fuer Container - isolierte, portable Umgebungen, in denen deine Software laeuft. Der Effekt: “Works on my machine” war gestern. Deine App laeuft auf deinem Laptop, deinem Kollegen-Rechner und dem Server garantiert gleich.

Seit 2013 ist Docker zum de-facto Standard geworden. Wer 2026 im Backend, DevOps oder Cloud-Umfeld arbeitet, kommt an Docker nicht vorbei.

Das Problem ohne Docker

Stell dir vor, du baust eine Node.js-App mit:

  • Node 22
  • PostgreSQL 16
  • Redis 7
  • Systemfont XY

Dein Kollege hat Node 18, dein Server Node 20. PostgreSQL auf macOS laeuft anders als auf Linux. Der Systemfont fehlt auf dem Server. Das Deployment: Chaos.

Mit Docker: Alles in einem Image verpackt. Laeuft ueberall gleich.

Was ist ein Container?

Ein Container ist ein Prozess plus seine Umgebung:

  • Eigenes Filesystem
  • Eigene Netzwerk-Konfiguration
  • Eigene Prozess-Liste
  • Von anderen Containern isoliert

Das Ganze teilt sich den Kernel mit dem Host - deshalb ist ein Container viel leichter als eine VM.

Container vs. Virtual Machine

EigenschaftVMContainer
GroesseGBMB
StartzeitSekunden/Minutenms bis Sekunden
Isolationkomplettgeteilter Kernel
Ressourcenhochminimal
Portabeleingeschraenktextrem

Eine VM emuliert eine ganze Maschine. Ein Container ist nur ein gut isolierter Prozess.

Die Begriffe

Image

Ein Image ist ein Template - wie eine ZIP-Datei mit:

  • Betriebssystem (minimalistisch)
  • Runtime (Node, Python, Java, …)
  • App-Code
  • Abhaengigkeiten
  • Konfiguration

Ein Image ist read-only und versioniert.

Container

Ein Container ist eine laufende Instanz eines Images. Du kannst aus einem Image 1000 Container starten - alle isoliert voneinander.

Registry

Ein Registry ist ein Server, der Images hostet:

  • Docker Hub - der grosse oeffentliche Registry
  • GHCR (GitHub Container Registry)
  • AWS ECR, Google Artifact Registry - Cloud-Registries
  • Private Registries im eigenen Unternehmen

Dockerfile

Das Rezept, um ein Image zu bauen:

FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
CMD ["node", "server.js"]

Lernen wir im Detail in einem spaeteren Kapitel.

Was Docker dir bringt

1. Reproduzierbarkeit

docker run meine-app:1.2.3 gibt dir exakt die gleiche Umgebung, egal wo.

2. Isolation

Node 18 fuer Projekt A, Node 22 fuer Projekt B - ohne Konflikte, ohne nvm.

3. Schnelles Deployment

Ein Container startet in Sekunden. Du rollst Updates in einem Bruchteil der Zeit aus.

4. Dev/Prod-Parity

Deine lokale Entwicklungsumgebung entspricht der Produktion. Keine bösen Überraschungen.

5. Microservices

Fuer Microservice-Architekturen ist Docker die Basis - jeder Service in seinem Container, sauber getrennt.

6. Einfache Datenbank-Setups

docker run -d --name postgres -e POSTGRES_PASSWORD=secret -p 5432:5432 postgres:16

Eine laufende PostgreSQL in einer Zeile. Ohne Installation, ohne Konfig.

Wie benutze ich Docker?

Grob gibt es drei Szenarien:

1. Fremde Images nutzen (einfachster Einstieg)

Du startest fertige Images aus Docker Hub:

docker run -it ubuntu bash              # Ubuntu-Shell
docker run -d -p 80:80 nginx           # Webserver
docker run -d postgres:16              # Datenbank

2. Eigene Images bauen

Du schreibst ein Dockerfile und baust ein Image fuer deine App.

3. Multi-Container-Setups mit docker-compose

Fuer Apps mit mehreren Services (App + DB + Cache + …).

Docker vs. “Alternativen”

  • Podman - Docker-kompatibel, ohne Daemon, Root-less
  • containerd / runc - tiefere Ebenen; Docker nutzt sie intern
  • Kubernetes - orchestriert viele Container; Docker ist die Runtime darunter

Fuer den Start lernst du Docker - alles andere baut darauf auf.

Ein Moment zum Einschaetzen

Was Docker fuer viele Teams veraendert hat:

  • Setup-Zeit neuer Dev frueher 2 Tage (Tools installieren, DBs einrichten). Mit Docker: 10 Minuten (docker compose up).
  • Deployment frueher manuell, heute docker push + docker pull.
  • Debugging von Production-Bugs auf lokalem System - weil beide die gleiche Umgebung sind.

Das sind keine kleinen Verbesserungen - das ist ein Paradigmenwechsel.

Schattenseiten

  • Lernkurve - zuerst fuehlt sich Docker overkill an
  • Ressourcen-Overhead auf macOS/Windows (Docker Desktop nutzt eine kleine VM im Hintergrund)
  • Filesystem-Performance unter macOS manchmal traege (obwohl besser als frueher)
  • Image-Groessen koennen ausufern, wenn man nicht aufpasst

Aber: Der Benefit ueberwiegt, sobald du den Einstieg geschafft hast.

Lohnt sich Docker 2026?

Absolut. Gruende:

  • DevOps-Pflicht - Jobs ohne Container-Kenntnis sind fast nicht mehr vorhanden
  • Cloud-Deployment - AWS ECS, Google Cloud Run, Azure Container Apps - alle nutzen Container
  • Kubernetes - das Top-Thema in grossen Infrastrukturen - ohne Docker-Grundlagen kein Einstieg
  • Local Dev - Docker loest Umgebungsprobleme ein fuer alle mal

Als Naechstes: Im naechsten Kapitel installieren wir Docker auf deinem Rechner.

Zurück zum Docker Kurs