Docker Tutorial für Einsteiger: Container verstehen und nutzen (2026)
Du hast schon öfter von Docker gehört, aber weißt nicht genau, was Container eigentlich sind oder wie du sie nutzen kannst? In diesem Docker Tutorial für Einsteiger erkläre ich dir Schritt für Schritt, was Docker ist, wie du es installierst und wie du deine ersten Container zum Laufen bringst. Kein Vorwissen nötig – nur etwas Neugier.
Was ist Docker? Container-Technologie einfach erklärt
Docker ist eine Open-Source-Plattform, die das Erstellen, Verteilen und Ausführen von Anwendungen in sogenannten Containern ermöglicht. Aber was ist ein Container eigentlich?
Stell dir vor, du möchtest eine Anwendung auf deinem Rechner betreiben. Früher musstest du dafür das Betriebssystem passend konfigurieren, Abhängigkeiten installieren und hoffen, dass alles zusammenpasst. Mit Docker packst du die Anwendung zusammen mit all ihren Abhängigkeiten in einen Container – eine Art leichtgewichtige, portable Box.
Der Unterschied zu virtuellen Maschinen:
- Virtuelle Maschinen (VMs) emulieren komplett Hardware + eigenes Betriebssystem → ressourcenintensiv
- Docker-Container teilen sich den Kernel des Host-Betriebssystems → deutlich leichter und schneller
Ein Container startet in Sekunden, eine VM braucht Minuten. Ein Container verbraucht typischerweise wenige Megabytes RAM, eine VM oft mehrere Gigabytes.
Warum Docker für dein Homelab?
Docker hat sich im Homelab-Bereich als Standard etabliert – und das aus gutem Grund:
- Isolierung: Jeder Dienst läuft in einem eigenen Container, Konflikte sind nahezu ausgeschlossen
- Portabilität: Ein Container funktioniert auf jedem System mit Docker – egal ob Ubuntu, Debian oder Proxmox LXC
- Reproduzierbarkeit: Mit einer einfachen Konfigurationsdatei kannst du deine gesamte Umgebung neu aufbauen
- Einfaches Update: Neue Version runterladen, alten Container löschen, neuen starten – fertig
- Ressourceneffizienz: Dutzende Dienste auf einem einzigen Server möglich
Docker Installation auf Ubuntu und Debian
Die offizielle Docker-Installationsmethode über das Docker-Repository ist die empfohlene Vorgehensweise. Vergiss die Version aus dem Standard-Repository – die ist oft veraltet.
Schritt 1: System vorbereiten
# System aktualisieren
sudo apt update && sudo apt upgrade -y
Benötigte Pakete installieren
sudo apt install -y ca-certificates curl gnupg lsb-release
Schritt 2: Docker GPG-Schlüssel hinzufügen
# GPG-Schlüssel hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Schritt 3: Docker-Repository einrichten
# Repository hinzufügen (Ubuntu)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Paketliste aktualisieren
sudo apt update
Schritt 4: Docker installieren
# Docker Engine installieren
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Überprüfen ob Docker läuft
sudo systemctl status docker
Schritt 5: Docker ohne sudo nutzen (optional, aber empfohlen)
# Deinen Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
Abmelden und neu anmelden, dann testen:
docker run hello-world
Die wichtigsten Docker-Befehle im Überblick
Nach der Installation brauchst du nur eine Handvoll Befehle, um effektiv mit Docker zu arbeiten.
Images verwalten
# Image aus Docker Hub herunterladen
docker pull nginx:latest
Alle lokal gespeicherten Images anzeigen
docker images
Ein Image löschen
docker rmi nginx:latest
Nach Images suchen
docker search ubuntu
Container starten und verwalten
# Container starten (interaktiv)
docker run -it ubuntu:22.04 bash
Container im Hintergrund starten
docker run -d --name mein-nginx -p 8080:80 nginx
Alle laufenden Container anzeigen
docker ps
Alle Container anzeigen (auch gestoppte)
docker ps -a
Container stoppen
docker stop mein-nginx
Container starten (nach dem Stoppen)
docker start mein-nginx
Container löschen
docker rm mein-nginx
Logs eines Containers anzeigen
docker logs mein-nginx
In einen laufenden Container einsteigen
docker exec -it mein-nginx bash
Nützliche Kombinations-Befehle
# Alle gestoppten Container löschen
docker container prune
Alle ungenutzten Images, Container und Netzwerke aufräumen
docker system prune -a
Ressourcenverbrauch anzeigen
docker stats
Docker Compose: Mehrere Container einfach orchestrieren
Wenn du mehrere Container zusammen betreiben möchtest, ist Docker Compose dein bester Freund. Mit einer einzigen YAML-Datei (docker-compose.yml) definierst du deine gesamte Anwendungsumgebung.
Was ist Docker Compose?
Docker Compose erlaubt es dir, mehrere Container als einen Dienst zu definieren und gemeinsam zu starten, zu stoppen und zu konfigurieren. Statt viele einzelne docker run-Befehle ausführen zu müssen, hast du alles in einer übersichtlichen Datei.
Aufbau einer docker-compose.yml
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
db:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: geheimesPasswort
MYSQL_DATABASE: meinedatenbank
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
db_data:
Docker Compose Befehle
# Alle Container starten (im Hintergrund)
docker compose up -d
Logs aller Dienste anzeigen
docker compose logs -f
Status der Dienste anzeigen
docker compose ps
Alle Dienste stoppen
docker compose down
Alle Dienste stoppen UND Volumes löschen
docker compose down -v
Einzelnen Dienst neu starten
docker compose restart web
Praktisches Beispiel: Webserver mit Nginx deployen
Lass uns das Gelernte direkt anwenden. Wir richten einen einfachen Webserver mit Nginx ein, der eine eigene HTML-Seite ausliefert.
Schritt 1: Projektverzeichnis erstellen
mkdir ~/mein-webserver && cd ~/mein-webserver
mkdir html
Schritt 2: Testseite erstellen
cat > html/index.html << 'EOF'
Mein Docker Webserver
Docker Tutorial für Einsteiger – es funktioniert!
Dieser Server läuft in einem Docker-Container.
EOF
Schritt 3: docker-compose.yml anlegen
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
webserver:
image: nginx:latest
container_name: mein-webserver
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
EOF
Schritt 4: Starten und testen
# Container starten
docker compose up -d
Status prüfen
docker compose ps
Im Browser aufrufen: http://localhost:8080
Fertig! Du hast deinen ersten Webserver in einem Docker-Container zum Laufen gebracht. Öffne im Browser http://localhost:8080 und du solltest deine Testseite sehen.
Docker-Volumes: Daten dauerhaft speichern
Container sind von Natur aus kurzlebig – wenn du einen Container löschst, sind alle darin gespeicherten Daten weg. Für persistente Daten nutzt du Volumes.
Es gibt zwei Arten:
- Bind Mounts: Ein Verzeichnis auf deinem Host wird direkt in den Container eingebunden (
./daten:/data) - Named Volumes: Docker verwaltet den Speicherort selbst (
db_data:/var/lib/mysql)
Für Konfigurationsdateien empfehle ich Bind Mounts (du siehst direkt, wo die Dateien liegen). Für Datenbanken und andere Anwendungsdaten sind Named Volumes oft besser geeignet.
Häufige Fehler und wie du sie vermeidest
1. Port bereits belegt
Fehlermeldung: Error: bind: address already in use
Lösung: Prüfe mit ss -tlnp | grep :80, welcher Prozess Port 80 nutzt, und wähle einen anderen Port.
2. Berechtigungsfehler
Fehlermeldung: permission denied while trying to connect to the Docker daemon
Lösung: Sicherstellen, dass dein Benutzer in der Docker-Gruppe ist (sudo usermod -aG docker $USER), dann neu einloggen.
3. Container startet nicht
Lösung: Logs prüfen mit docker logs <container-name> – dort findest du meist die Ursache.
Nächste Schritte: Was du als nächstes lernen solltest
Du hast jetzt die Grundlagen von Docker verstanden. Hier sind sinnvolle nächste Schritte:
- Eigene Dockerfiles erstellen: Lerne, wie du eigene Images baust
- Netzwerke in Docker: Wie Container miteinander kommunizieren
- Portainer installieren: Ein grafisches Web-Interface für Docker-Management
- Docker auf Proxmox: Docker in LXC-Containern oder VMs betreiben
- Traefik als Reverse Proxy: Mehrere Webdienste unter einer Domain verwalten
Hinweis: Dieser Artikel enthält Affiliate-Links. Wenn du über diese Links kaufst oder einen Dienst buchst, erhalte ich eine kleine Provision – für dich entstehen keine Mehrkosten.
🔔 Empfehlung: Günstiger VPS für Docker-Deployments in der Cloud → Hetzner Cloud
🔔 Empfehlung: Lokaler Homelab-Server für Docker-Experimente → Dell OptiPlex 7070 Micro Mini-PC
Fazit: Docker Tutorial für Einsteiger
Docker ist ein mächtiges Werkzeug, das deinen Homelab oder deinen Server erheblich vereinfachen kann. Mit Containern bekommst du Isolierung, Portabilität und einfaches Management – und das alles mit vergleichsweise geringem Ressourcenverbrauch.
Das Docker Tutorial für Einsteiger zeigt dir, dass der Einstieg gar nicht so schwer ist: Installation, ein paar grundlegende Befehle, und schon läuft dein erster Container. Mit Docker Compose gehst du noch einen Schritt weiter und orchestrierst mehrere Dienste elegant in einer einzigen Konfigurationsdatei.
Probier es aus – starte mit dem Nginx-Beispiel und experimentiere von dort aus. Die Docker-Community und die offizielle Dokumentation sind dabei eine hervorragende Ressource.
Hast du Fragen zu Docker oder möchtest du bestimmte Anwendungsszenarien in einem weiteren Artikel erklärt haben? Schreib es gerne in die Kommentare!
