Docker installieren und der erste Container
Wir erklären die Installation von Docker Desktop und Docker Engine, das Starten des ersten Containers, das Schreiben eines Dockerfiles und den Aufbau einer Multi-Service-Umgebung mit Docker Compose.

Für die Docker-Installation laden Sie unter Windows und macOS den Installer von Docker Desktop von docker.com herunter; unter Windows muss zuvor WSL 2 aktiviert sein. Unter Linux wird Docker Engine aus dem offiziellen Repository installiert. Führen Sie danach den Befehl docker run hello-world aus; sehen Sie die Willkommensmeldung, läuft Docker. Für Projekte mit mehreren Services verwendet man Docker Compose.
Was ist Docker und wozu dient es?
Docker ist eine Plattform, die eine Anwendung samt allem, was sie braucht, verpackt und in abgeschotteten Umgebungen namens Container ausführt. Anwendung, Bibliotheken und Einstellungen sind in einem einzigen Image gebündelt; dieses Image verhält sich überall gleich, egal wo es läuft.
Praktisch heißt das: Das Problem »Bei mir lief es aber« verschwindet weitgehend. Der Laptop des Entwicklers, der Testserver und der Live-Server verwenden dasselbe Image. Und ein neues Teammitglied startet das Projekt mit einem einzigen Befehl, statt stundenlang einzurichten.
Container ähneln virtuellen Maschinen, sind aber deutlich schlanker. Jeder trägt kein eigenes Betriebssystem mit sich, sondern teilt sich den Kernel des Hostsystems; deshalb starten sie in Sekunden und verbrauchen wenig Ressourcen.
| Begriff | Kurz erklärt |
|---|---|
| Image | Schreibgeschützte Vorlage der Anwendung; wird aus einem Dockerfile erzeugt |
| Container | Laufende Instanz, die aus einem Image gestartet wird |
| Dockerfile | Textdatei, die beschreibt, wie das Image gebaut wird |
| Volume | Persistenter Datenbereich, der auch nach dem Löschen des Containers erhalten bleibt |
| Docker Hub | Öffentliche Registry mit fertigen Images |
| Docker Compose | Werkzeug, das mehrere Container über eine einzige Datei verwaltet |
Voraussetzungen vor der Installation
Docker Desktop startet im Hintergrund eine kleine virtuelle Umgebung; deshalb muss die Virtualisierung Ihres Rechners aktiviert sein. Auf den meisten neueren Rechnern ist sie standardmäßig an; falls nicht, aktivieren Sie in den BIOS/UEFI-Einstellungen die Option Intel VT-x oder AMD-V.
Unter Windows führt Docker Desktop Linux-Container auf WSL 2 aus. Ist WSL nicht installiert, richten Sie es zuerst ein; die Schritte beschreiben wir ausführlich in unserem Leitfaden WSL installieren.
- Arbeitsspeicher: Sollen mehrere Container gleichzeitig laufen, sorgen mindestens 8 GB RAM für komfortables Arbeiten.
- Speicherplatz: Images sammeln sich mit der Zeit an; planen Sie einige zehn GB freien Platz ein.
- Lizenz: Docker Desktop ist für den persönlichen Gebrauch, für Bildung und für kleine Unternehmen unterhalb einer bestimmten Größe kostenlos; größere Organisationen benötigen ein kostenpflichtiges Abonnement. Die aktuellen Bedingungen prüfen Sie auf docker.com.
wsl --install
# Starten Sie den Rechner nach der Installation neu und prüfen Sie dann
wsl --statusDocker Desktop unter Windows und macOS
Docker Desktop bündelt Docker Engine, das Kommandozeilenwerkzeug, Docker Compose und eine grafische Verwaltungsoberfläche in einem Paket. Laden Sie den Installer von der offiziellen Website herunter und installieren Sie ihn mit den Standardeinstellungen.
Achten Sie unter Windows bei der Installation darauf, dass die Option Use WSL 2 instead of Hyper-V angehakt ist. Unter macOS wählen Sie die zu Ihrem Prozessor passende Version: Apple Silicon (M-Serie) oder Intel. Starten Sie die App nach der Installation; sobald das Wal-Symbol in der Menüleiste oder Taskleiste stehen bleibt, ist Docker bereit.
winget install -e --id Docker.DockerDesktopDocker Engine unter Linux installieren
Unter Linux läuft Docker auch ohne Docker Desktop direkt als Docker Engine; das ist auch die Standardmethode für Server. Am zuverlässigsten folgen Sie der Repository-Installation für Ihre Distribution aus der offiziellen Dokumentation. Für Entwicklungsrechner erledigt das offizielle Convenience-Skript von Docker dasselbe in einem Schritt.
Fügen Sie Ihren Benutzer nach der Installation zur Gruppe docker hinzu, müssen Sie nicht jedem Befehl sudo voranstellen. Da diese Gruppe nahezu root-Rechte verleiht, nehmen Sie nur Benutzer auf, denen Sie vertrauen.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Für die Nutzung ohne sudo
sudo usermod -aG docker $USER
newgrp docker
# Dienst beim Systemstart starten
sudo systemctl enable --now dockerInstallation überprüfen
Unabhängig vom Betriebssystem sind die Prüfbefehle dieselben. Das Image hello-world wird von Docker Hub geladen, ausgeführt, gibt eine Erklärung aus und beendet sich. Sehen Sie diese Ausgabe, funktioniert die Kette aus Client, Engine und Image-Download einwandfrei.
docker --version
docker compose version
docker run hello-worldDen ersten Container starten
Machen wir mit einem echten Beispiel weiter: Wir starten nginx, einen schlanken Webserver, als Container und öffnen ihn im Browser. Das Flag -d lässt den Container im Hintergrund laufen, -p 8080:80 verbindet Port 8080 Ihres Rechners mit Port 80 des Containers.
Öffnen Sie nach dem Befehl im Browser http://localhost:8080; Sie sollten die nginx-Willkommensseite sehen. Mit den weiteren Befehlen unten beobachten Sie den Container, öffnen eine Shell darin und räumen ihn auf.
docker run -d -p 8080:80 --name web nginx
# Laufende Container
docker ps
# Logs verfolgen
docker logs web
# Shell im Container öffnen
docker exec -it web sh
# Durdur ve sil
docker stop web
docker rm web
# Heruntergeladene Images
docker imagesEigene Dateien ausliefern
Um HTML-Dateien aus einem Ordner in den Container einzubinden, nutzt man einen Bind Mount. Der folgende Befehl bindet Ihren aktuellen Ordner schreibgeschützt in das Webverzeichnis von nginx ein; bearbeiten Sie die Datei und laden die Seite neu, sehen Sie die Änderung sofort.
docker run -d -p 8080:80 -v "$(pwd)":/usr/share/nginx/html:ro --name site nginxEin eigenes Image bauen
Um eine Node.js-Anwendung in ein Image zu verwandeln, legen Sie im Projektstamm eine Datei namens Dockerfile an. Wenn Sie zuerst die package-Dateien kopieren und die Abhängigkeiten installieren, muss diese Schicht bei Codeänderungen nicht neu gebaut werden, und der Build wird schneller.
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]docker build -t uygulamam .
docker run -d -p 3000:3000 uygulamamMehrere Services mit Docker Compose
Echte Projekte bestehen meist aus mehreren Teilen: einem Webserver, einer Datenbank, vielleicht einem Cache. Statt jeden einzeln mit eigenen docker-run-Befehlen zu starten, definieren Sie mit Docker Compose alles in einer einzigen Datei compose.yaml.
Das folgende Beispiel startet einen nginx-Webserver zusammen mit einer MariaDB-Datenbank. Da die Datenbankdateien in einem benannten Volume liegen, bleiben die Daten auch erhalten, wenn der Container gelöscht wird. Die in älteren Beispielen übliche version-Zeile ist nicht mehr nötig.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
depends_on:
- db
db:
image: mariadb:lts
environment:
MARIADB_ROOT_PASSWORD: degistirin
MARIADB_DATABASE: uygulama
volumes:
- db-veri:/var/lib/mysql
volumes:
db-veri:docker compose up -d
docker compose ps
docker compose logs -f
docker compose down
# Volume'larla birlikte sil (veriler gider)
docker compose down -vHäufige Fehler und Lösungen
Probleme bei der Docker-Installation betreffen meist Virtualisierung, Berechtigungen und Portkonflikte. Füllen Images und gestoppte Container mit der Zeit die Festplatte, räumt docker system prune ungenutzte Ressourcen auf; vor dem Löschen fragt der Befehl nach.
- WSL-2-/Virtualisierungsfehler: Aktivieren Sie die Virtualisierung im BIOS, aktualisieren Sie WSL mit wsl --update und starten Sie den Rechner neu.
- port is already allocated: Der gewählte Port wird von einer anderen Anwendung verwendet. Wählen Sie einen anderen Port wie -p 8081:80 oder beenden Sie die kollidierende Anwendung.
- permission denied ... docker.sock: Unter Linux gehört Ihr Benutzer nicht zur Gruppe docker; melden Sie sich nach dem Befehl usermod ab und wieder an.
- Cannot connect to the Docker daemon: Docker Desktop ist beendet oder der Dienst läuft unter Linux nicht; starten Sie ihn mit sudo systemctl start docker.
- Warnung zur Image-Architektur auf dem Mac: Manche Images werden nur für x86 veröffentlicht. Wählen Sie nach Möglichkeit ein Tag mit ARM-Unterstützung.
Was bringt Docker für Webprojekte?
Docker sorgt dafür, dass Entwicklungs-, Test- und Live-Umgebung eines Webprojekts identisch sind. Betreiben Sie ein Projekt mit PHP und Datenbank in Containern statt in Ein-Rechner-Paketen wie bei der XAMPP-Installation, vermeiden Sie Überraschungen durch unterschiedliche Versionen. Wie Sie PHP-Abhängigkeiten im Container verwalten, lesen Sie in unserem Leitfaden zur Composer-Installation.
Reproduzierbare Umgebungen sorgen dafür, dass Verbesserungen bei Geschwindigkeit und Performance auch live dasselbe Ergebnis liefern. Für integrierte Lösungen, in denen mehrere Systeme zusammenarbeiten, und für eine wachsende Shopsystem-Infrastruktur ist diese Konsistenz besonders wichtig.
Weitere Inhalte rund um Container und Server finden Sie auf unserer Seite zum Docker-Tag.
Häufig gestellte Fragen
01Was ist der Unterschied zwischen Docker und einer virtuellen Maschine?
Eine virtuelle Maschine bringt ein eigenes Betriebssystem mit, belegt Gigabytes und startet in Minuten. Ein Container teilt sich dagegen den Kernel des Hostsystems, bleibt im Megabyte-Bereich und startet in Sekunden; dafür ist die Isolation nicht so stark wie bei einer virtuellen Maschine.
02Kann man Docker unter Windows ohne Docker Desktop nutzen?
Ja. Sie können Docker Engine direkt in einer Linux-Distribution unter WSL 2 installieren. Das schafft Spielraum bei der Lizenz, aber Sie verzichten auf Komfort wie die grafische Oberfläche und automatische Updates.
03Gehen meine Daten verloren, wenn ich einen Container lösche?
Daten, die in einen Container geschrieben werden, gehen mit dem Container verloren. Binden Sie Daten, die bestehen bleiben sollen, etwa Datenbankdateien, per Volume oder Bind Mount außerhalb des Containers ein; bedenken Sie, dass docker compose down -v auch die Volumes löscht.
04Wird Docker auf Live-Servern eingesetzt?
Ja, sehr viele Anwendungen laufen live als Container. Backup, Updates, Log-Überwachung und Sicherheitseinstellungen müssen für die Live-Umgebung allerdings gesondert geplant werden; eine 1:1-Kopie der Installation vom Entwicklungsrechner reicht nicht.
Haben Sie Docker installiert und den ersten Container gestartet, arbeiten Sie mit einer reproduzierbaren Umgebung, in der sich Ihre Projekte auf jedem Rechner gleich hochfahren lassen. Wünschen Sie sich für Ihr Unternehmen eine maßgeschneiderte, wartungsfreundliche Software, die nach diesem Prinzip entwickelt wird, lernen Sie die individuellen Softwarelösungen von Aurora Yazılım kennen oder nehmen Sie Kontakt mit uns auf.


