Häufige Fragen rund um Docker
Wenn du gerade dein erstes Homelab planst: Im Homelab-Anfänger-Komplettguide ordnen wir Docker in den größeren Kontext ein — Hardware, Netzwerk, Reverse Proxy, Backup. Dieser Beitrag konzentriert sich auf Docker selbst.
Brauche ich Docker oder reicht Podman?
Beide nutzen den gleichen OCI-Standard und sind weitgehend kompatibel. Docker hat das größere Ökosystem und ist in Tutorials der Standard. Podman ist daemon-frei und sicherheitstechnisch sauberer (rootless). Im Homelab spricht wenig gegen Docker — auf Servern, die du härten willst, lohnt der Blick auf Podman.
Was ist der Unterschied zwischen Image und Container?
Ein Image ist die unveränderliche Vorlage — vergleichbar mit einer ISO-Datei. Ein Container ist eine laufende Instanz davon — vergleichbar mit einer ausgeführten VM. Du kannst aus einem Image beliebig viele Container starten, jeder mit eigenem Zustand.
Wo speichert Docker meine Daten?
Standard: in einem Container-internen Filesystem, das beim Container-Stop futsch ist. Für persistente Daten gibt es Volumes (von Docker verwaltet, in /var/lib/docker/volumes/) oder Bind Mounts (Ordner deiner Wahl auf dem Host). Für Self-Hosting-Setups sind Bind Mounts mit klar benannten Pfaden meist die entspannteste Wahl.
Kann ich Docker auf Windows oder Mac nutzen?
Ja, mit Docker Desktop. Der startet im Hintergrund eine kleine Linux-VM und führt Container darin aus. Funktioniert gut zum Entwickeln, kostet aber für kommerzielle Nutzung Geld. Alternativen: WSL2 unter Windows mit Docker im WSL-Kernel oder Colima auf macOS — beide kostenlos.
Wie viele Container kann ein Host laufen?
Das hängt fast nur vom RAM und der CPU der einzelnen Container ab. Auf einem Mini-PC mit 16 GB RAM laufen oft 20-40 leichtgewichtige Container ohne Probleme. Bei VMs hättest du auf der gleichen Hardware nur 4-8 Stück. Das macht Docker im Homelab so attraktiv.
Was tun bei „permission denied“-Fehlern?
Klassiker beim ersten Start: Der eigene User ist nicht in der docker-Gruppe. Fix: sudo usermod -aG docker $USER und einmal aus- und wieder einloggen. Bei Bind-Mount-Permission-Problemen liegt es meist an den UID/GID-Mappings — viele Container nutzen UID 1000, die musst du im Host-Verzeichnis als Owner setzen.
Externe Quellen für die Vertiefung
- docs.docker.com — offizielle Dokumentation, sehr gut strukturiert.
- Docker auf GitHub — Quellcode und Issues.
- Docker-Community-Forum — gut dokumentierte Praxis-Threads.
- r/docker auf Reddit — lebendige Community zu allen Docker-Fragen.
Verwandte Tutorials auf Lapalutschi.de
- Docker-Netzwerke richtig einrichten — die nächste Stufe für komplexere Setups.
- Docker oder Kubernetes — wann sich der Sprung zu K8s lohnt.
TL;DR — die Kurzfassung
- Container sind leichte Verpackungen für Anwendungen — sie isolieren ein Programm samt seinen Abhängigkeiten vom Host-System.
- Docker startet einen Container in unter einer Sekunde, eine vergleichbare VM braucht Minuten.
- Drei Schlüsselbegriffe: Image (die Vorlage), Container (die laufende Instanz), Volume (persistente Daten).
- docker-compose macht Multi-Container-Setups klickleicht — eine YAML-Datei, ein Befehl, alles läuft.
- Im Homelab oft sinnvoller als eine VM für jeden kleinen Webdienst — die LXC-vs-VM-Übersicht zeigt, wann was passt.
HOMELAB-EINSTEIGER aufgepasst! Du hast schon tausendmal von Docker gehört, aber verstehst den Hype nicht? In diesem Mega-Turbo-Guide erkläre ich dir Schritt für Schritt, was Docker ist, wie du’s installierst und wie du deine ersten Container zum Laufen bringst!
Keine Vorkenntnisse nötig! Nur etwas Neugier!
Was ist Docker — eine kurze Einordnung
Docker ist eine Open-Source-Plattform, die das Erstellen, Verteilen und Ausführen von Anwendungen in Containern ermöglicht!
Aber was ist ein Container?
Stell dir vor: Du willst eine App starten. Früher: Betriebssystem konfigurieren, Abhängigkeiten installieren, hoffen dass alles passt! Mit Docker: Du packst App + Abhängigkeiten in eine leichtgewichtige, portable Box – und sie läuft überall!
Container vs. VMs — der wichtige Unterschied
- Virtuelle Maschinen (VMs): Emulieren komplette Hardware + eigenes Betriebssystem → ressourcenintensiv!
- Docker-Container: Teilen sich den Kernel des Host-OS → deutlich leichter und schneller!
Konkret:
- Container startet in Sekunden – VM braucht MINUTEN!
- Container braucht wenige MB RAM – VM mehrere GB!
Warum Docker im Homelab so beliebt ist
Docker ist der absolute Standard im Homelab – aus diesen fünf Gründen:
- Isolierung: Jeder Dienst in eigenem Container – ZERO Konflikte!
- Portabilität: Container läuft überall (Ubuntu, Debian, Proxmox LXC)!
- Reproduzierbarkeit: Mit einer einfachen Konfigurationsdatei baust du komplette Umgebungen neu auf!
- Einfaches Update: Neue Version ziehen, alten Container löschen, neuen starten – fertig!
- Ressourceneffizienz: Dutzende Dienste auf einem einzigen Server!
Schritt 1: Docker installieren
Vergiss die Version aus dem Standard-Repo – die ist oft veraltet!
Schritt 1: System vorbereiten!
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
Schritt 2: Docker 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!
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
sudo apt update
Schritt 4: Docker installieren!
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker
Schritt 5: Docker OHNE sudo nutzen!
sudo usermod -aG docker $USER
# Abmelden und neu anmelden!
docker run hello-world
ZACK! FERTIG! Läuft der hello-world-Container? DANN BIST DU DOCKER-PROFI!
Schritt 2: Erste Docker-Befehle
Images verwalten!
# Image aus Docker Hub ziehen
docker pull nginx:latest
# Alle Images anzeigen
docker images
# Image löschen
docker rmi nginx:latest
# Nach Images suchen
docker search ubuntu
Container starten und verwalten!
# Container interaktiv starten
docker run -it ubuntu:22.04 bash
# Container im Hintergrund starten
docker run -d --name mein-nginx -p 8080:80 nginx
# Laufende Container anzeigen
docker ps
# ALLE Container anzeigen (auch gestoppte)
docker ps -a
# Container stoppen
docker stop mein-nginx
# Container löschen
docker rm mein-nginx
Schritt 3: docker-compose nutzen
Der wahre Zauber kommt mit docker-compose! Eine einzige docker-compose.yml beschreibt dein komplettes Setup!
Beispiel: Nextcloud + MariaDB in einem Rutsch:
version: '3.8'
services:
db:
image: mariadb:11
environment:
MYSQL_ROOT_PASSWORD: geheim
MYSQL_DATABASE: nextcloud
volumes:
- ./db-data:/var/lib/mysql
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
depends_on:
- db
volumes:
- ./nc-data:/var/www/html
Dann nur:
docker compose up -d
FERTIG! Nextcloud läuft unter http://localhost:8080!
Häufige Anfänger-Fallen und wie du sie vermeidest
ACHTUNG, Typisches Grinsen!
- Ports doppelt vergeben! Zwei Container können nicht gleichzeitig
80:80belegen! - Daten gehen verloren! Ohne Volume-Mounts werden Daten beim Container-Stop GELÖSCHT!
- Root im Container! Manche Images laufen als Root – lieber
USER nobodysetzen! - Latest-Tag!
docker pull nginx:latestkann morgen anders sein – feste Versionen pinnen!
Fazit — und was du als Nächstes ausprobieren kannst
Keine Ausreden mehr: Docker ist EINFACH und SPAREND – sobald du die Grundlagen drauf hast, willst du NIE wieder ohne!
Mein Tipp: Heute den ersten hello-world starten, morgen einen Nextcloud-Container, übermorgen dein komplettes Homelab in einer docker-compose.yml!
Auf Lapalutschi.de kommt bald der ultimative docker-compose-Guide für Homelabs – mit Traefik, Authelia und automatischen SSL-Zertifikaten! Bleib dran!