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.
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
| Eigenschaft | VM | Container |
|---|---|---|
| Groesse | GB | MB |
| Startzeit | Sekunden/Minuten | ms bis Sekunden |
| Isolation | komplett | geteilter Kernel |
| Ressourcen | hoch | minimal |
| Portabel | eingeschraenkt | extrem |
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.