Docker für Einsteiger: Container in 20 Minuten verstehen
Docker ist die mit Abstand beliebteste Container-Plattform und aus keinem modernen Homelab mehr wegzudenken. Statt jede Anwendung mühsam manuell auf einem Server einzurichten, packst du sie samt aller Abhängigkeiten in einen Container – und startest sie damit auf jedem Rechner identisch. In diesem Guide lernst du in rund 20 Minuten, was Container von virtuellen Maschinen unterscheidet, warum Docker auch für dein Homelab sinnvoll ist und wie du mit den ersten Befehlen sofort loslegst.
Container vs. virtuelle Maschine: der entscheidende Unterschied
Der Unterschied zwischen beiden Ansätzen ist leichter zu verstehen, als er oft klingt:
- Virtuelle Maschine (VM): Eine VM emuliert komplette Hardware und bringt ein eigenes Betriebssystem inklusive Kernel mit. Sie ist stark isoliert, benötigt aber viel RAM, Festplatte und Bootzeit. Werkzeuge wie Proxmox oder VirtualBox arbeiten auf dieser Ebene.
- Container: Ein Container teilt sich den Kernel des Host-Systems und enthält nur die Anwendung samt ihrer Abhängigkeiten. Dadurch startet er in Sekunden und verbraucht nur einen Bruchteil der Ressourcen einer VM.
Faustregel: Ein Container isoliert eine Anwendung, eine VM isoliert ein ganzes Betriebssystem. Für die allermeisten Linux-Dienste im Homelab ist der Container die schlankere, schnellere Wahl.
Warum Docker im Homelab?
Docker löst ein klassisches Problem: „Auf meinem Rechner lief es doch!" Weil jede Anwendung ihre komplette Umgebung mitbringt, gibt es keine Konflikte durch unterschiedliche Python-, Node- oder Datenbankversionen. Dazu kommen klare Vorteile:
- Reproduzierbar: Ein Dienst läuft auf jedem Docker-Host identisch – egal ob Raspberry Pi, Mini-PC oder Server.
- Portabel: Container lassen sich als Image speichern, teilen und in Sekunden auf anderer Hardware starten.
- Sauber aufräumbar: Ein Dienst lässt sich komplett entfernen, ohne Restdateien oder verwaiste Abhängigkeiten zu hinterlassen.
- Großes Ökosystem: Auf Docker Hub stehen tausende fertige Images bereit – von Home Assistant über Jellyfin bis zu Pihole.
Installation unter Linux
Unter Debian oder Ubuntu installierst du Docker am bequemsten über das offizielle Installationsskript:
curl -fsSL https://get.docker.com | sh
Danach fügst du deinen Benutzer zur Gruppe docker hinzu, damit du ohne sudo arbeiten kannst:
sudo usermod -aG docker $USER
Nach einem erneuten Login prüfst du die Installation:
docker --version
docker run hello-world
Erscheint die Begrüßungsmeldung, ist Docker einsatzbereit.
Die ersten Befehle: run, ps, stop
Der wichtigste Befehl ist docker run. Er lädt ein Image herunter (falls nötig) und startet daraus einen Container. Ein erstes Praxisbeispiel mit dem DNS-Werbe-Blocker Pihole – hier stark vereinfacht:
docker run -d --name mein-test -p 8080:80 nginx
Die Schalter im Überblick:
-dstartet den Container im Hintergrund (detached).--namevergibt einen sprechenden Namen.-p 8080:80verbindet Port 8080 des Hosts mit Port 80 im Container.nginxist das verwendete Image.
Mit diesen Befehlen behältst du den Überblick:
docker ps # laufende Container auflisten
docker ps -a # auch gestoppte Container anzeigen
docker stop mein-test # Container stoppen
docker rm mein-test # Container entfernen
Mehrere Dienste mit Docker Compose verwalten
Sobald du mehr als einen Dienst betreibst, lohnt sich Docker Compose. Statt langer docker run-Befehle beschreibst du alle Container in einer deklarativen Datei. Ein typisches Beispiel, das einen Webserver und eine Datenbank gemeinsam startet:
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
restart: unless-stopped
db:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: geheim123
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
db_data:
Gespeichert als docker-compose.yml startest du den gesamten Stack mit einem einzigen Befehl:
docker compose up -d
Mit docker compose down fährst du alles wieder herunter, docker compose ps zeigt den Status. Der Clou: Du versionierst diese Datei einfach mit Git – dein komplettes Homelab wird damit nachvollziehbar und reproduzierbar.
Typische Anwendungen im Homelab
Die Auswahl an fertigen Images ist riesig. Diese Dienste laufen bei Homelab-Betreibern besonders häufig in Containern:
- Pihole oder AdGuard Home: DNS-basierte Werbeblocker für das ganze Netzwerk.
- Home Assistant: Zentrale Smart-Home-Steuerung.
- Jellyfin oder Plex: Eigener Medienserver für Filme und Serien.
- Nextcloud: Private Cloud für Dateien, Kalender und Kontakte.
- Portainer: Web-Oberfläche zur bequemen Verwaltung aller Container.
- Watchtower: Hält deine Container automatisch aktuell.
Tipps für einen sauberen Einstieg
- Volumes nutzen: Speichere Daten immer in Volumes oder gebundenen Verzeichnissen, nicht im Container selbst – sonst gehen sie beim Update verloren.
- Ports dokumentieren: Notiere dir, welcher Dienst welchen Port belegt, um Konflikte zu vermeiden.
- Compose statt Einzelbefehle: Sobald ein Dienst eine zweite Komponente braucht, wechsle auf
docker-compose.yml. - Images aufräumen: Mit
docker system pruneentfernst du regelmäßig ungenutzte Images und Container. - Klein anfangen: Starte mit einem Dienst wie Pihole, bevor du ganze Stacks aufsetzt.
Fazit
Docker senkt die Einstiegshürde für Homelab-Selbsthoster erheblich: Ein Befehl genügt, um einen fertigen Dienst zu starten, und mit Compose bleibt das ganze Setup reproduzierbar. Wer Container einmal verstanden hat, wird seine Dienste kaum noch anders betreiben wollen – egal ob auf einem Raspberry Pi oder einem ausgewachsenen Server.