⚡ HomelabVergleich

Docker fürs Homelab: Grundlagen und Best Practices

Kaum ein Werkzeug hat das Homelab so verändert wie Docker. Wo früher jede Anwendung ihren eigenen Server, ihre eigene VM oder eine wilde Sammlung von Installationsskripten brauchte, genügt heute ein Container. Docker verpackt Software samt Abhängigkeiten in ein isoliertes, reproduzierbares Paket — startbar auf jedem x86- oder ARM-System, egal ob NAS, Mini-PC oder alter Laptop. Dieser Artikel zeigt, warum Docker im Homelab so wertvoll ist und wie du Installation, Compose-Dateien, Persistenz, Netzwerke und Backups sauber aufsetzt.

Warum Docker im Homelab?

Der größte Vorteil ist die Isolation. Jeder Container läuft in einer eigenen Umgebung, ohne sich mit anderen Diensten um Bibliotheken oder Ports zu streiten. Ein Update von Pi-hole zerstört nicht die Nextcloud-Installation daneben, und ein kaputter Container lässt sich in Sekunden löschen und neu starten. Dazu kommt Reproduzierbarkeit: Eine docker-compose.yml beschreibt den kompletten Dienst als Code. Das macht Umzüge auf neue Hardware, Wiederherstellungen nach Ausfällen und das Verwalten dutzender Dienste planbar und versionierbar. Für ein Homelab, das oft über Jahre wächst, ist genau diese Ordnung Gold wert.

Installation

Der einfachste Weg führt über das offizielle Installationsskript von Docker. Auf Debian oder Ubuntu genügt ein Einzeiler:

curl -fsSL https://get.docker.com | sh

Anschließend legst du deinen Benutzer in die Gruppe docker, damit du Container ohne sudo verwalten kannst. Auf NAS-Systemen ist Docker meist schon integriert — Synology nennt es Container Manager, QNAP die Container Station, Ugreen bietet eine eigene Docker-App. Wer lieber gleich komplett verwaltet, installiert im nächsten Schritt Portainer (siehe unten). Prüfe nach der Installation kurz, ob alles läuft:

docker run hello-world

docker-compose-Grundlagen

Statt Container per docker run mit langen Flag-Listen zu starten, beschreibst du deine Dienste in einer YAML-Datei. Ein minimales Beispiel für einen Webserver:

version: "3"
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    restart: unless-stopped

Wichtigste Bausteine: image legt das Basis-Image fest, ports verbindet Host- und Container-Port, volumes sorgt für persistente Daten und restart: unless-stopped startet den Dienst nach einem Reboot automatisch neu. Gestartet wird mit docker compose up -d, aktualisiert mit docker compose pull && docker compose up -d.

Wichtige Images für den Start

Drei Container gehören in fast jedes Homelab. Portainer ist eine grafische Oberfläche, mit der du Container, Images, Volumes und Netzwerke bequem im Browser verwaltest — ideal für Einsteiger und als Kontrollzentrale für alles Weitere. Watchtower übernimmt automatische Updates: Er beobachtet deine laufenden Container und zieht neue Image-Versionen, sobald sie verfügbar sind. Nginx (oder der Reverse-Proxy Nginx Proxy Manager) leitet eingehende Anfragen an die richtigen Dienste weiter und übernimmt SSL-Terminierung — so erreichst du mehrere Dienste über saubere Domains statt über kryptische Portnummern. Alle drei sind als offizielle Images verfügbar und in wenigen Minuten einsatzbereit.

Volumes und Persistenz

Container sind flüchtig: Wird einer neu erstellt, sind alle Daten im Container weg. Alles, was bleiben soll, gehört daher in ein Volume oder ein Bind-Mount. Benannte Volumes verwaltet Docker selbst und sind der Standard für Datenbanken und App-Daten; Bind-Mounts verknüpfen einen Host-Ordner direkt mit dem Container und eignen sich für Konfigurationsdateien, die du von außen editieren willst. Faustregel: Jede Datenbank, jede Config und jede Nutzerdatei bekommt ihr eigenes Volume — niemals Daten im Container selbst speichern.

Netzwerke

Standardmäßig legt Docker für jede Compose-Datei ein eigenes Bridge-Netzwerk an, über das sich die Container untereinander per Dienstnamen erreichen. Dienste, die miteinander sprechen sollen — etwa eine App und ihre Datenbank — gehören in dasselbe Netzwerk. Nur das, was von außen erreichbar sein muss, bekommt einen ports-Eintrag. Für saubere Trennung kannst du eigene Netzwerke definieren und Dienste gezielt zuordnen, etwa ein internes Backend-Netz ohne direkten Internetzugang.

Backups

Das Backup einer Docker-Installation ist im Kern ein Backup der Volumes plus der Compose-Dateien. Die einfachste Strategie: Compose-Dateien in ein Git-Repository legen und die Volumes regelmäßig sichern. Für Datenbanken gilt: niemals laufende Dateien kopieren, sondern mit dem passenden Tool dumpen (etwa pg_dump bei PostgreSQL) und den Dump sichern. Ein schlanker Weg ist ein Backup-Container, der in festen Intervallen alle benannten Volumes in ein Tar-Archiv packt und an einen zweiten Ort kopiert. Teste die Wiederherstellung gelegentlich — ein Backup, das noch nie zurückgespielt wurde, ist nur eine Vermutung.

Fazit

Docker bringt Struktur in ein wachsendes Homelab: Dienste werden als Code beschrieben, sind isoliert, portabel und im Schadensfall schnell wiederhergestellt. Der Einstieg über Installation, ein paar Compose-Dateien und die Basis-Images Portainer, Watchtower und Nginx reicht, um die meisten Aufgaben zu lösen. Wer die drei Regeln beherzigt — alles als Compose verwalten, Daten in Volumes legen und Backups testen — baut ein Fundament, das auch nach Jahren noch wartbar ist. Einen guten Unterbau für Docker liefert übrigens eine Virtualisierungsumgebung wie Proxmox, auf der sich Container und VMs flexibel kombinieren lassen.

Hinweis: Dieser Artikel enthält keine Affiliate- oder Partner-Links. Die Angaben entsprechen dem Stand September 2026 und können sich ändern. Alle genannten Images und Kommandos sind exemplarisch; prüfe die aktuelle Dokumentation der jeweiligen Projekte, bevor du Updates einspielst. Weiterführende Hardware-Vergleiche findest du auf unserer Hardware-Vergleichsseite.