Container haben die Softwareentwicklung grundlegend verändert. Was früher Tage an Einrichtungsaufwand bedeutete – identische Entwicklungsumgebungen für alle Teammitglieder, reproduzierbare Deployments, Isolation zwischen Projekten – lässt sich mit Docker in Minuten bewerkstelligen. Mit Docker Desktop steht die volle Container-Infrastruktur auch unter Windows bereit, tief integriert in WSL2. Diese Anleitung führt von der Installation bis zum ersten laufenden Container-Stack.
Container vs. Virtuelle Maschinen – Der Unterschied
Bevor Docker Desktop installiert wird, lohnt ein Blick auf das Grundprinzip. Container und virtuelle Maschinen (VMs) lösen ähnliche Probleme, aber auf unterschiedliche Weise:
| Merkmal | Container (Docker) | Virtuelle Maschine (VirtualBox/Hyper-V) |
|---|---|---|
| Kernel | Teilt Host-Kernel | Eigener Kernel (vollständiges OS) |
| Startzeit | Sekunden bis Millisekunden | Sekunden bis Minuten |
| Speicherbedarf | Gering (MB) | Hoch (GB pro VM) |
| Isolation | Prozess-Isolation | Vollständige Kernel-Isolation |
| Portabilität | Sehr hoch (Image-basiert) | Mittel (VHD/VMDK-Dateien) |
| Anwendungsfall | Microservices, CI/CD, Entwicklung | Vollständige OS-Tests, Legacy-Software |
Container sind keine VMs. Sie nutzen den Linux-Kernel des Hosts (unter Windows über WSL2) und isolieren nur Dateisystem, Netzwerk und Prozesse. Das macht sie extrem schnell und ressourcenschonend.
Docker Desktop vs. Docker Engine
Docker Engine ist der eigentliche Container-Daemon, der auf Linux nativ läuft. Docker Desktop hingegen ist ein grafisches Verwaltungstool für Windows und macOS, das Docker Engine in einer WSL2-VM ausführt und eine GUI sowie Integrationen in den Windows-Alltag bietet. Für reine Linux-Server reicht Docker Engine; auf Windows-Entwicklerrechnern ist Docker Desktop die komfortabelste Wahl.
Voraussetzungen: WSL2 aktivieren
Docker Desktop unter Windows setzt auf WSL2 (Windows Subsystem for Linux 2). Vor der Installation sollte WSL2 aktiviert sein:
- PowerShell als Administrator öffnen und eingeben:
wsl --install - Nach dem Neustart wird WSL2 automatisch als Standard gesetzt.
- Optional: Ubuntu aus dem Microsoft Store installieren, um eine Linux-Shell zu erhalten.
Alternativ erkennt der Docker-Desktop-Installer fehlende WSL2-Abhängigkeiten und bietet an, sie automatisch zu installieren.
Docker Desktop installieren
- Installer von der offiziellen Docker-Website herunterladen.
- Installationsdatei ausführen; die Option „WSL 2 instead of Hyper-V" auswählen (empfohlen).
- Nach Abschluss der Installation den PC neu starten.
- Docker Desktop aus dem Startmenü starten und den Einrichtungsassistenten abschließen.
Nach dem Start erscheint das Docker-Icon in der Taskleiste. Ein grünes Icon signalisiert, dass die Docker-Engine läuft und bereit ist.
Erste Schritte: Container starten
Der einfachste Einstieg gelingt über die Kommandozeile (PowerShell, CMD oder WSL2-Terminal):
# Verfügbare Docker-Version prüfen
docker --version
# Test-Container herunterladen und starten
docker run hello-world
# Nginx-Webserver starten, Port 8080 nach außen freigeben
docker run -d -p 8080:80 --name mein-nginx nginx
# Laufende Container anzeigen
docker ps
# Container stoppen
docker stop mein-nginx
# Container und Image aufräumen
docker rm mein-nginx
docker rmi nginx
Docker Hub: Fertige Images nutzen
Docker Hub ist das öffentliche Image-Repository von Docker mit Hunderttausenden vorgefertigten Images. Häufig genutzte offizielle Images sind unter anderem:
nginx– Webserver und Reverse Proxy.mysql,postgres,mariadb– Datenbanken.node,python,php– Laufzeitumgebungen.wordpress– CMS mit integrierter PHP-Umgebung.redis– In-Memory-Datenstrukturserver.
Dockerfile: Eigene Images erstellen
Ein Dockerfile ist eine Textdatei, die beschreibt, wie ein Docker-Image aufgebaut wird. Einfaches Beispiel für eine Node.js-Anwendung:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Mit docker build -t meine-app . wird das Image gebaut, mit docker run -p 3000:3000 meine-app gestartet.
Docker Compose: Mehrere Container verwalten
Docker Compose erlaubt es, mehrere Container gemeinsam zu definieren und zu starten. Die Konfiguration erfolgt in einer docker-compose.yml-Datei:
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: geheim
MYSQL_DATABASE: meinedb
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Mit docker compose up -d werden alle definierten Dienste gestartet; docker compose down stoppt und entfernt sie wieder.
Volumes und Ports
Volumes stellen sicher, dass Daten auch nach dem Löschen eines Containers erhalten bleiben. Ohne Volume gehen Datenbankdaten beim nächsten docker rm verloren. Port-Mappings (-p HOST:CONTAINER) machen Dienste innerhalb des Containers von außen erreichbar.
Ressourcen-Limits setzen
Unter Docker Desktop → Settings → Resources lässt sich festlegen, wie viel RAM, CPU und Festplattenspeicher Docker verwenden darf. Standardmäßig beansprucht WSL2 bis zu 50 % des RAM. Für Entwicklerrechner mit 16 GB empfiehlt sich eine Begrenzung auf 4–6 GB.
Alternativen zu Docker Desktop
| Tool | Besonderheit | Lizenz |
|---|---|---|
| Podman Desktop | Daemonlos, rootless, Red-Hat-Projekt | Kostenlos, Open Source |
| Rancher Desktop | Kubernetes-Integration, nerdctl-CLI | Kostenlos, Open Source |
| Docker Desktop | Beste GUI, größte Kompatibilität | Kostenlos (privat), Abo (kommerziell) |
| Colima (macOS/Linux) | Leichtgewichtig, Terminal-basiert | Kostenlos, Open Source |
Podman Desktop und Rancher Desktop sind für Nutzer interessant, die Docker Desktop wegen der kommerziellen Lizenz meiden möchten. Beide sind vollständig quelloffen und unterstützen die bekannte Docker-CLI-Syntax.
FAQ zu Docker Desktop
- Kann Docker Desktop mit Hyper-V statt WSL2 betrieben werden?
- Ja, Docker Desktop unterstützt sowohl WSL2 als auch Hyper-V als Backend. WSL2 ist jedoch moderner, schneller und ressourcenschonender. Hyper-V ist eine Alternative für Systeme, auf denen WSL2 nicht verfügbar ist, etwa bei bestimmten Windows-Server-Konfigurationen.
- Wie unterscheidet sich
docker composevondocker-compose? docker-compose(mit Bindestrich) war ein separates Python-Tool (Compose V1). Seit Docker Desktop 4.x ist Compose V2 als Plugin direkt in die Docker CLI integriert:docker compose(ohne Bindestrich). V1 wird nicht mehr gepflegt; alle neuen Projekte sollten Compose V2 verwenden.- Werden Container-Daten beim Neustart von Docker gelöscht?
- Daten im Container-Dateisystem gehen beim Löschen (
docker rm) des Containers verloren. Persistente Daten müssen über Volumes oder Bind-Mounts außerhalb des Containers gespeichert werden. Datenbanken und Upload-Ordner gehören grundsätzlich in ein Volume. - Wie aktualisiere ich Docker Desktop?
- Docker Desktop prüft beim Start automatisch auf Updates und zeigt eine Benachrichtigung an. Über Einstellungen → Software-Updates lässt sich die automatische Aktualisierung auch deaktivieren. Regelmäßige Updates sind empfehlenswert, da sie Sicherheitslücken schließen und neue Features bringen.
