Raspberry Pi Docker

NEWS



RASPBERRY PI DOCKER


Docker-Container auf dem Raspberry Pi

Docker auf dem Raspberry Pi einrichten

Kurz gesagt: Warum Docker auf dem Raspberry Pi?

Docker auf dem Raspberry Pi ist der bequemste Weg, aus einem Bastelrechner einen kleinen Heimserver zu machen – hier die Kurzfassung:

  • Installation in einer Zeile: curl -sSL https://get.docker.com | sh – danach noch sudo usermod -aG docker $USER und einmal neu anmelden.
  • Der eigentliche Gewinn: Jeder Dienst läuft isoliert in seinem eigenen Container. Keine Abhängigkeits-Konflikte, kein zerschossenes System durch eine misslungene Installation.
  • Aufräumen ist trivial: Container löschen heißt Dienst spurlos entfernt – kein Rest im System, keine verwaisten Konfigurationsdateien.
  • Docker Compose beschreibt komplette Setups in einer Textdatei. Diese eine Datei ist gleichzeitig Dokumentation, Backup und Umzugshilfe.
  • Voraussetzung: ein 64-Bit-System, mindestens 2 GB RAM (besser 4 bis 8) und unbedingt eine SSD – Docker schreibt zu viel für Speicherkarten.
  • Grenze im Kopf behalten: Container sind keine virtuellen Maschinen. Sie teilen sich den Kernel des Pi – ein Windows-Programm läuft darin nicht, ein x86-Image ebenso wenig.

Was Docker ist – ohne Fachchinesisch erklärt

Docker verpackt eine Anwendung samt allem, was sie zum Laufen braucht, in ein abgeschlossenes Paket – einen Container. Dieser Container bringt seine eigenen Bibliotheken und Abhängigkeiten mit und stört sich nicht am Rest des Systems. Die Bauanleitung dafür heißt Image und wird aus einer öffentlichen Registry geladen; der Container ist die laufende Instanz davon.

Der Unterschied zur klassischen Installation wird an einem Beispiel deutlich: Wer Nextcloud von Hand installiert, braucht einen Webserver, PHP in der richtigen Version und eine Datenbank – und wenn ein anderes Programm eine andere PHP-Version verlangt, beginnt der Ärger. Mit Docker bringt jeder Dienst seine passende Umgebung selbst mit. Beide laufen nebeneinander, ohne sich zu kennen.

Der zweite große Vorteil zeigt sich beim Aufräumen: Eine misslungene Installation hinterlässt Konfigurationsreste, verwaiste Pakete und Dienste, die beim Start Fehler ins Protokoll schreiben. Ein gelöschter Container hinterlässt nichts. Genau deshalb ist Docker auf dem Pi so beliebt – man kann gefahrlos ausprobieren.

Was Docker nicht ist: eine virtuelle Maschine. Container teilen sich den Kernel des Wirtssystems und starten deshalb in Sekunden statt in Minuten, und sie brauchen keinen fest reservierten Arbeitsspeicher. Das ist der Grund, warum das auf einem Rechner mit 4 oder 8 GB RAM überhaupt praktikabel ist.

Docker auf dem Raspberry Pi installieren – Schritt für Schritt

  1. System vorbereiten: Aktuelles 64-Bit-Raspberry-Pi-OS auf Basis von Debian 13 „Trixie" – die Lite-Variante ohne Desktop genügt für einen Container-Server vollkommen. Prüfen mit uname -m, dort muss aarch64 stehen. Ein 32-Bit-System ist eine Sackgasse: Docker hat angekündigt, die armhf-Unterstützung nach der Engine-Version 28 auslaufen zu lassen.
  2. Auf Stand bringen: sudo apt update && sudo apt full-upgrade – Details dazu stehen in der Anleitung zum Raspberry-Pi-Update. Danach einmal neu starten.
  3. Docker installieren: curl -sSL https://get.docker.com | sh – das offizielle Skript erkennt den Pi, bindet die passende Paketquelle ein und richtet Engine, CLI, containerd sowie die Plugins buildx und compose ein.
  4. Benutzer berechtigen: sudo usermod -aG docker $USER, danach abmelden und neu anmelden. Ohne diesen Schritt braucht jeder Docker-Befehl ein vorangestelltes sudo.
  5. Compose prüfen: docker compose version – das Plugin ist bei aktuellen Installationen bereits dabei und liegt inzwischen in der fünften Hauptversion vor. Wichtig: docker compose mit Leerzeichen, nicht mehr docker-compose mit Bindestrich.
  6. Testlauf: docker run --rm hello-world – erscheint die Begrüßung, ist alles bereit. Der Schalter --rm löscht den Container gleich wieder.

Der richtige Weg: Docker Compose statt Einzelbefehle

Man kann Container mit langen docker run-Befehlen starten – aber niemand erinnert sich drei Monate später an die Parameter. Deshalb gilt die wichtigste Regel dieses Artikels: Alles in eine compose.yaml schreiben. Diese Datei ist gleichzeitig Konfiguration, Dokumentation und Umzugshilfe.

Ein einfaches Beispiel für den Überwachungsdienst Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data

Vier Angaben tragen das ganze Setup: image bestimmt, was geladen wird, ports verbindet einen Port des Pi mit einem Port im Container, volumes legt fest, welcher Ordner die Daten behält, und restart regelt das Verhalten nach einem Neustart.

  1. Ordner anlegen: Pro Dienst ein eigenes Verzeichnis, etwa ~/docker/uptime-kuma – diese Struktur ist später das gesamte Backup-Konzept.
  2. Datei speichern als compose.yaml in diesem Ordner. Achtung bei der Einrückung: YAML verlangt Leerzeichen, keine Tabulatoren.
  3. Starten: docker compose up -d – der Container läuft im Hintergrund.
  4. Kontrollieren: docker compose logs -f zeigt live, was der Dienst tut. Startet ein Container immer wieder neu, steht der Grund in diesen Zeilen.
  5. Aktualisieren: docker compose pull && docker compose up -d – neue Version holen und den Container austauschen. Die Daten im Volume bleiben davon unberührt.
  6. Sichern: Die compose.yaml und der data-Ordner sind alles, was ins Backup gehört. Damit ist der Dienst auf jedem anderen Rechner in Minuten wiederhergestellt.

Ein Hinweis zu Versionsangaben: :latest klingt bequem, holt beim nächsten pull aber unter Umständen einen Versionssprung, der das Setup zerlegt. Wer eine konkrete Hauptversion einträgt, bekommt Aktualisierungen ohne böse Überraschungen.

Beliebte Dienste, die sich als Container lohnen

Alle genannten Projekte bieten Images für arm64 an:

  • Werbeblocker: Pi-hole oder AdGuard Home – als Container schnell getestet und ebenso schnell wieder entfernt. Beide brauchen Port 53, laufen also nicht gleichzeitig.
  • Eigene Cloud: Nextcloud und Immich – beide bestehen aus mehreren Containern, die Compose sauber zusammenhält.
  • Medien: Jellyfin und Plex – hier gehört die Mediathek per Volume in den Container, am besten schreibgeschützt.
  • Monitoring: Uptime Kuma, Grafana und InfluxDB – die Kombination aus Datenbank und Diagrammen ist ein klassischer Zwei-Container-Stapel.
  • Passwörter: Vaultwarden – der schlanke Bitwarden-Server, der auf dem Pi kaum Ressourcen kostet.
  • Smart Home: Zigbee2MQTT zusammen mit einem MQTT-Broker – ein gutes Beispiel dafür, wie zwei Container über ein gemeinsames Netzwerk zusammenarbeiten.
  • KI: Open WebUI als Oberfläche für Ollama.
  • Verwaltung: Portainer gibt allen Containern eine Weboberfläche – praktisch für alle, die ungern im Terminal arbeiten.

Eine Ausnahme gibt es: Home Assistant läuft zwar als Container, verliert dabei aber den Add-on-Store. Dort ist Home Assistant OS die bessere Wahl.

Die Docker-Befehle für den Alltag

Mehr als diese Handvoll Kommandos braucht ein Heimserver selten. Wer sich mit der Kommandozeile insgesamt schwertut, findet in der Übersicht der wichtigsten Raspberry-Pi-Befehle den passenden Unterbau.

BefehlWofür
docker psLaufende Container anzeigen (-a zeigt auch gestoppte)
docker compose up -dDienste aus der compose.yaml starten
docker compose downDienste stoppen und Container entfernen
docker compose restartContainer neu starten, ohne sie neu zu erzeugen
docker compose logs -fLive-Protokoll ansehen – erste Anlaufstelle bei Problemen
docker compose pullNeue Image-Versionen holen
docker exec -it name bashIn einen laufenden Container hineinschauen
docker statsRessourcenverbrauch je Container in Echtzeit
docker imagesAlle heruntergeladenen Images mit Größe
docker system dfZeigt, wie viel Platz Images, Container und Volumes belegen
docker system prune -aAufräumen – entfernt ungenutzte Images; schafft oft mehrere Gigabyte

Der letzte Befehl verdient eine Warnung: Mit -a verschwinden auch Images, die gerade zu keinem laufenden Container gehören. Wer regelmäßig mit vollem Speicher kämpft, ist damit richtig – wer viel ausprobiert, lädt danach eben noch einmal herunter.

Container, native Installation oder virtuelle Maschine?

Nicht jede Software gehört in einen Container. Die Entscheidung fällt in der Praxis danach, wie tief ein Dienst ins System greift:

KriteriumDockerNative InstallationVirtuelle Maschine
StartzeitSekundenSekundenMinuten
Speicherbedarfgering, wird geteiltam geringstenfest reserviert
Rückstandsfreies Entfernenjaseltenja
Zugriff auf USB und GPIOmöglich, braucht Konfigurationdirektumständlich
Auf dem Pi sinnvollfast immerbei Systemdienstennur auf starken Modellen

Praktisch heißt das: Alles, was eine Weboberfläche hat und für sich allein arbeitet, gehört in einen Container. Alles, was mit Hardware spricht, Netzwerkschnittstellen umkonfiguriert oder Kernel-Module lädt, ist nativ oft einfacher – dazu zählen etwa Werkzeuge rund um GPIO oder VPN-Dienste.

Virtuelle Maschinen sind auf dem Pi die Ausnahme. Sie ergeben Sinn, wenn ein komplettes zweites Betriebssystem gebraucht wird – auf einem Pi 5 mit 16 GB ist das möglich, wirtschaftlich ist es selten. Für die typischen Heimserver-Aufgaben sind Container die deutlich sparsamere Lösung.

Was auf dem Pi anders ist als auf dem PC

  • Nicht jedes Image läuft: Der Pi braucht ARM-Images (arm64). Die meisten großen Projekte bieten sie an, manche Nischen-Software nicht – ein Blick auf die unterstützten Architekturen vor der Installation spart Frust. Die Fehlermeldung lautet dann sinngemäß „no matching manifest for linux/arm64".
  • SD-Karten sind ungeeignet: Docker schreibt Layer, Protokolle und Datenbanken permanent. Auf Karte ist das ein Countdown; auf NVMe-SSD kein Thema.
  • RAM ist die harte Grenze: Jeder Container braucht Speicher. Auf 4 GB laufen erfahrungsgemäß drei bis fünf schlanke Dienste, auf 8 GB deutlich mehr – der Swap rettet nur kurzfristig und geht auf Kosten des Datenträgers.
  • Volumes richtig setzen: Ohne Volume sind die Daten beim Löschen des Containers weg. Alles, was überleben soll, gehört in einen gemappten Ordner – und zwar von Anfang an, nicht erst beim ersten Datenverlust.
  • Rechte an gemappten Ordnern: Viele Images laufen unter einer eigenen Benutzer-ID. Passt sie nicht zum Ordner auf dem Pi, beendet sich der Container sofort wieder. Die Angaben PUID und PGID in der compose.yaml lösen das in den meisten Fällen.
  • Erreichbarkeit von außen: Ein Container, der im Heimnetz läuft, gehört nicht per Portfreigabe ins Internet. Der sichere Weg führt über ein VPN wie Tailscale oder einen Cloudflare Tunnel.

Häufige Fragen zu Docker auf dem Raspberry Pi

Läuft Docker auf jedem Raspberry Pi?
Auf allen Modellen ab dem Pi 3 mit 64-Bit-System. Praktisch sinnvoll wird es ab 2 GB RAM – der Raspberry Pi Zero 2 W schafft einen einzelnen kleinen Container, mehr nicht.

Wie viele Container schafft ein Pi 5 mit 8 GB?
Zehn schlanke Dienste sind unproblematisch. Speicherhungrige Kandidaten wie Datenbanken, Frigate oder KI-Modelle senken die Zahl deutlich – dort sind zwei bis drei Container schon die Obergrenze.

Was ist der Unterschied zwischen docker-compose und docker compose?
Die Version mit Bindestrich ist das alte, eigenständige Programm in Python. Aktuell ist das eingebaute Plugin – geschrieben mit Leerzeichen. Alte Anleitungen funktionieren meist trotzdem, weil die Syntax der Datei gleich blieb.

Wie sichere ich meine Container?
Nicht die Container selbst, sondern die compose.yaml und die Datenordner. Beides zusammen kopiert reicht, um den Aufbau woanders wiederherzustellen.

Warum startet mein Container immer wieder neu?
In neun von zehn Fällen fehlen Schreibrechte auf einem gemappten Ordner oder eine Pflichtangabe in der Konfiguration. docker compose logs nennt den Grund fast immer in den ersten Zeilen.

Wie bekomme ich Docker wieder herunter?
sudo apt purge docker-ce docker-ce-cli containerd.io und anschließend /var/lib/docker löschen. Danach ist das System wieder im Ausgangszustand.

Brauche ich Portainer?
Nicht zwingend – aber es hilft beim Einstieg, weil man laufende Container, Protokolle und Ressourcen im Browser sieht. Die Portainer-Anleitung zeigt die Einrichtung.

Fazit

Docker auf dem Raspberry Pi verwandelt den Bastelrechner in eine Spielwiese ohne Reue: Dienste starten in Sekunden, laufen getrennt voneinander und verschwinden auf Wunsch spurlos. Unsere klare Empfehlung dazu: Verzichte auf lange docker-run-Befehle und schreib alles in compose-Dateien – ein Ordner pro Dienst, eine Datei darin. Diese Dateien sind später deine Dokumentation, dein Backup und deine Umzugshilfe in einem – und der Grund, warum ein Wechsel auf neue Hardware zur Fleißarbeit von zwanzig Minuten wird statt zum Wochenendprojekt. Die zweite Regel ist ebenso wichtig: Docker gehört auf eine SSD, nicht auf eine Speicherkarte. Wer beides beherzigt, bekommt einen Heimserver, der jahrelang ohne Zwischenfälle durchläuft.

* = Affiliate Link (raspi-config.de ist Teilnehmer des Partnerprogramms von Amazon EU, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu Amazon.de Werbekostenerstattung verdient werden kann.)


VORSCHAU


Was Dich im Raspberry Pi Videokurs erwartet.


Play klicken & Video abspielen.

QUIZ


Prüfe Deinen aktuellen Wissensstand.

Raspberry Pi Quiz starten

Bild anklicken & Quiz starten.

NEWS



EMPFEHLUNG



Danke für Deine Weiterempfehlung!

© 2026 raspi-config.de | Datenschutz | Impressum