Docker auf dem Heimserver – Container leicht gemacht

Früher hat man Dienste wie Nextcloud, Plex oder Home Assistant direkt auf dem Server installiert – mit allem was dazu gehört: Abhängigkeitskonflikte, schwierige Updates, und wenn man mal etwas ausprobieren wollte, war das System schnell im Chaos. Docker hat das grundlegend geändert. Heute läuft bei mir fast alles im Container.

Was ist Docker?

Docker ist eine Container-Plattform, die es erlaubt, Anwendungen samt ihrer gesamten Abhängigkeiten in isolierten Umgebungen – sogenannten Containern – zu betreiben. Jeder Container läuft unabhängig vom Rest des Systems, lässt sich mit einem Befehl starten, stoppen oder löschen. Updates sind damit kinderleicht: einfach das Image aktualisieren und den Container neu starten.

Installation auf Ubuntu/Debian

Die offizielle Installationsmethode über das Docker-Repository:

sudo apt update
sudo apt install ca-certificates curl gnupg -y

# 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

# Repository einbinden
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

Docker Compose – der eigentliche Gamechanger

Noch praktischer als Docker alleine ist Docker Compose. Damit beschreibt man in einer einzigen docker-compose.yml-Datei, welche Container mit welchen Einstellungen gestartet werden sollen. Ein Beispiel für Portainer – eine grafische Oberfläche zur Docker-Verwaltung:

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:

Starten lässt sich das Ganze dann einfach mit:

docker compose up -d

Was läuft bei mir im Container?

Bei mir laufen inzwischen unter anderem Portainer zur Verwaltung, Nginx Proxy Manager für SSL und Reverse Proxy, Vaultwarden als selbst gehosteter Passwortmanager sowie diverse andere Dienste – alles sauber getrennt, einfach zu warten und bei Bedarf schnell auf einem neuen Server wiederherstellbar. In Kombination mit einem regelmäßigen Backup (z.B. mit Wordpree Backup, wie hier bereits beschrieben) hat man eine solide Heimserver-Infrastruktur.

Fazit

Docker ist für mich eines der nützlichsten Werkzeuge im Heimserver-Alltag. Der Einstieg braucht etwas Zeit, aber danach möchte man nicht mehr ohne. Wer regelmäßig neue Dienste ausprobiert oder seinen Server sauber halten möchte, sollte Docker unbedingt mal eine Chance geben.

Schreibe einen Kommentar