Home ITHome ServerDocker auf dem Raspberry Pi installieren: 32 oder 64 Bit?

Docker auf dem Raspberry Pi installieren: 32 oder 64 Bit?

by dr
0 Kommentare

Docker auf dem Raspberry Pi ist der naheliegendste Einstieg in den eigenen Heimserver: sparsam, leise, und mit Containern hast du Pi-hole, Home Assistant oder Jellyfin in Minuten statt Stunden am Laufen.

Die Installation hat allerdings eine Falle, an der die meisten Anleitungen vorbeigehen: Es gibt zwei verschiedene Wege, und welcher richtig ist, hängt davon ab, ob du das 32- oder 64-Bit-System nutzt. Wer den falschen nimmt, landet bei einem Repository, das für seine Architektur keine Pakete hat.

Transparenzhinweis: Diese Anleitung folgt Dockers offizieller Dokumentation, Stand September 2026. Anders als unsere Debian-, Ubuntu- und Arch-Anleitung konnten wir sie nicht auf echter Pi-Hardware nachprüfen – die Schritte für 64-Bit-Systeme sind aber identisch mit dem von uns getesteten Debian-Weg, weil Raspberry Pi OS auf Debian aufbaut.

Das Wichtigste in Kürze

  • 64-Bit-System: Du folgst der Debian-Anleitung. Repository-Pfad /linux/debian.
  • 32-Bit-System: Eigener Weg über /linux/raspbian – und ein Auslaufmodell.
  • Docker Engine v28 ist die letzte Version mit 32-Bit-Unterstützung. Danach ist Schluss.
  • Pi 1, Pi Zero und Zero W werden nicht unterstützt (ARMv6).
  • Verlege /var/lib/docker auf eine SSD. Die SD-Karte ist sonst der erste Ausfall.

Schritt 0: Herausfinden, was du eigentlich hast

Bevor du irgendetwas installierst, kläre zwei Dinge. Erstens die Architektur deines Systems:

dpkg --print-architecture
Ausgabe Bedeutung Welcher Weg
arm64 64-Bit-Raspberry-Pi-OS Weg A – Debian-Anleitung
armhf 32-Bit-Raspberry-Pi-OS Weg B – Raspbian-Anleitung

Zweitens dein Pi-Modell:

cat /proc/cpuinfo | grep -E "^Model"

Und hier die unangenehme Wahrheit: Raspberry Pi 1, Pi Zero und Pi Zero W haben einen ARMv6-Prozessor und werden von Docker nicht unterstützt. Es gibt keine offiziellen Pakete und keine passenden Container-Abbilder. Wer es über Umwege erzwingt, bekommt ein System, das bei fast jedem Abbild scheitert. Ab dem Pi Zero 2 W, dem Pi 2 und allen neueren Modellen funktioniert es.

Für ernsthafte Container-Nutzung solltest du realistisch einen Pi 4 oder Pi 5 mit mindestens 4 GB RAM einplanen. Ein Pi 3 mit 1 GB trägt Pi-hole und wenig mehr.

Weg A: 64-Bit-Raspberry-Pi-OS (der Normalfall)

Das ist seit einigen Jahren die Standardinstallation und der Weg, den du nehmen solltest. Raspberry Pi OS baut auf Debian auf, und Docker behandelt es genau so – du nutzt das Debian-Repository.

Alte Pakete entfernen

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc | cut -f1)

Meldet dpkg für jeden Namen „Kein Paket gefunden“, war einfach nichts zu entfernen – kein Fehler.

Paketquelle einrichten

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Den Fingerabdruck kannst du prüfen – erwartet wird 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88:

gpg --show-keys --with-fingerprint /etc/apt/keyrings/docker.asc

Dann die Paketquelle im deb822-Format:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

Kontrolliere die Datei, bevor du weitermachst:

cat /etc/apt/sources.list.d/docker.sources

Bei Suites muss ein Debian-Codename stehen – bei aktuellem Raspberry Pi OS trixie, bei der Vorgängerversion bookworm. Bei Architectures muss arm64 stehen. Passt eines davon nicht, findet apt keine Pakete.

Installieren

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Auf einem Pi mit SD-Karte dauert das ein paar Minuten länger als auf einem PC – die Karte ist der Bremsklotz, nicht der Prozessor.

Der Dienst startet danach von allein, weil Raspberry Pi OS die Debian-Pakete nutzt:

systemctl is-enabled docker   # enabled
systemctl is-active docker    # active

Weg B: 32-Bit-Raspberry-Pi-OS (Auslaufmodell)

Läuft auf deinem Pi noch das 32-Bit-System, brauchst du ein anderes Repository – und solltest die Umstellung planen.

Docker sagt es selbst deutlich: „Docker Engine v28 will be the last major version to support Raspberry Pi OS 32-bit (armhf).“ Danach bekommst du keine neuen Versionen und keine Sicherheitsaktualisierungen mehr. Wenn dein Pi 4 oder 5 noch mit 32 Bit läuft, ist ein Neuaufsetzen mit dem 64-Bit-Abbild die sinnvollere Investition, als diesen Weg zu gehen.

Für Pi-Modelle, die kein 64 Bit können – Pi 2 und Pi Zero 2 W –, bleibt Weg B:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/raspbian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/raspbian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Zwei Unterschiede zu Weg A fallen auf: Das Repository heißt raspbian statt debian, und die Paketquelle wird noch im alten einzeiligen Format als docker.list angelegt – für diesen Pfad hat Docker nicht auf deb822 umgestellt. Unterstützt werden hier nur Bookworm 12 und Bullseye 11.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Funktionstest und Rechte

sudo docker run --rm hello-world

Erscheint „Hello from Docker!“, läuft alles. Damit du ohne sudo arbeiten kannst:

sudo usermod -aG docker $USER

Danach abmelden und neu anmelden – bei einem Pi ohne Bildschirm heißt das: SSH-Sitzung beenden und neu verbinden. In der laufenden Sitzung greift die Gruppe nicht, und docker ps antwortet weiter mit permission denied.

Zur Einordnung: Die Gruppe docker entspricht Root-Rechten auf dem ganzen System. Auf einem Heimserver, dessen einziger Benutzer du bist, unkritisch.

Das Pi-Thema Nummer eins: die SD-Karte

Hier liegt der Unterschied zwischen einem Pi, der drei Jahre läuft, und einem, der nach sechs Monaten stirbt.

Docker schreibt viel: Abbilder, Container-Schichten, Protokolldateien, Volumes. Alles landet standardmäßig in /var/lib/docker – also auf der SD-Karte. SD-Karten haben eine begrenzte Zahl von Schreibvorgängen, und Container-Dienste, die ständig protokollieren, verbrauchen sie schnell.

Datenverzeichnis auf eine SSD verlegen

Der wirksamste Handgriff überhaupt. Hänge eine USB-SSD ein, etwa unter /mnt/ssd, und verlege dann das Docker-Verzeichnis:

sudo systemctl stop docker
sudo mv /var/lib/docker /mnt/ssd/docker

Dann eine Konfigurationsdatei anlegen – sie existiert standardmäßig nicht:

sudo nano /etc/docker/daemon.json
{
  "data-root": "/mnt/ssd/docker"
}
sudo systemctl start docker
docker info --format "{{.DockerRootDir}}"

Die letzte Zeile muss den neuen Pfad zeigen. Wichtig: Die SSD muss über /etc/fstab beim Booten eingehängt werden, sonst startet Docker nach einem Neustart ohne seine Daten.

Protokolle begrenzen

Container-Protokolle wachsen unbegrenzt, bis der Datenträger voll ist. Ergänze in derselben Datei:

{
  "data-root": "/mnt/ssd/docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Damit behält jeder Container höchstens drei Protokolldateien à 10 MB. Auf einem Pi ist das keine Feinheit, sondern Pflicht.

Die Datei muss gültiges JSON sein – ein vergessenes Komma, und der Dienst startet nicht mehr. Nach jeder Änderung prüfen:

sudo systemctl restart docker && systemctl is-active docker

Arbeitsspeicher: die zweite Grenze

Container brauchen RAM, und der Pi hat wenig davon. Zwei Dinge helfen:

Wähle schlanke Abbilder. Varianten mit -alpine im Namen sind oft ein Zehntel so groß wie die Standardausgabe. nginx:alpine statt nginx spart auf einem Pi spürbar Platz und Speicher.

Achte auf die Architektur. Nicht jedes Abbild gibt es für ARM. Scheitert ein Container mit exec format error, war es ein Abbild für x86. Prüfen kannst du das vorab:

docker manifest inspect IMAGE | grep architecture

Die großen Projekte – Home Assistant, Pi-hole, Jellyfin, Nextcloud – liefern alle ARM-Abbilder. Bei Nischensoftware lohnt der Blick vorher.

Was du als Erstes damit machst

Docker läuft – jetzt wird es interessant. Diese Dienste sind auf einem Pi bewährt:

  • Pi-hole – netzweiter Werbeblocker, läuft auf jedem Pi
  • AdGuard Home – die modernere Alternative dazu
  • Home Assistant – Smart-Home-Zentrale
  • Portainer – Weboberfläche für alle deine Container
  • Jellyfin – Medienserver; auf einem Pi 5 brauchbar, auf älteren Modellen nur ohne Transkodierung

Weitere Projektideen sammelt unser Artikel Die besten Raspberry-Pi-Projekte; wenn aus dem Pi ein vollwertiger Server werden soll, hilft Raspberry Pi als Homeserver.

Container-Ports und die Firewall

Gilt auf jedem System, auf einem Heimserver aber besonders: Veröffentlichte Container-Ports umgehen deine Firewall. Docker trägt seine Weiterleitungsregeln vor denen der Firewall ein. Ein Dienst mit "8080:80" ist im ganzen Heimnetz erreichbar – und wenn im Router eine Portweiterleitung steht, auch aus dem Internet.

Die Absicherung ist eine Adresse vor dem Port:

    ports:
      - "127.0.0.1:8080:80"

Ausführlich mit Nachweis steht das in unserer Ubuntu-Anleitung.

Was der Pi als Docker-Host braucht

Die SSD ist hier keine Spielerei, sondern der Unterschied zwischen drei Jahren Laufzeit und einer defekten SD-Karte.

* Affiliate-Links: Als Amazon-Partner verdienen wir an qualifizierten Käufen. Bitte prüfe die Kompatibilität mit deinem System.

Häufige Fragen

Reicht ein Raspberry Pi 3 für Docker?

Für einen oder zwei sparsame Dienste wie Pi-hole ja. Für Home Assistant mit Zusatzdiensten oder mehrere Container gleichzeitig wird es mit 1 GB RAM eng. Ab dem Pi 4 mit 4 GB arbeitet es sich deutlich angenehmer.

Kann ich Docker auch auf Ubuntu für den Pi installieren?

Ja. Dann gilt aber die Ubuntu-Anleitung mit dem Ubuntu-Repository – nicht diese hier.

Was ist mit dem Skript von get.docker.com?

curl -sSL https://get.docker.com | sh ist auf dem Pi besonders verbreitet, weil es die Architektur selbst erkennt. Docker empfiehlt es für Produktionssysteme ausdrücklich nicht: Es überschreibt Einstellungen ohne Rückfrage und lässt sich nicht sauber aktualisieren. Für einen Heimserver, der laufen soll, nimm den Weg über die Paketquelle.

Mein Container startet mit „exec format error“. Warum?

Das Abbild ist für eine andere Prozessorarchitektur gebaut, meist für x86. Suche nach einer ARM-Variante oder einem Abbild mit Multi-Architektur-Unterstützung.

Wie sichere ich meine Container-Daten?

Wichtig sind die Volumes, nicht die Container – die baust du jederzeit neu. docker volume ls zeigt sie, die Daten liegen unter /var/lib/docker/volumes beziehungsweise dem verlegten Pfad. Für Sicherungen auf einen anderen Rechner ist ein einfaches Skript mit rsync völlig ausreichend.

Läuft Docker auch auf dem Pi mit 32-Bit-System weiter?

Vorerst ja, aber ohne neue Hauptversionen nach v28. Für neue Projekte richte den Pi mit dem 64-Bit-Abbild ein.

Fazit

Auf einem aktuellen Raspberry Pi mit 64-Bit-System ist Docker exakt so installiert wie auf Debian – dieselbe Paketquelle, dieselben fünf Pakete, derselbe automatisch startende Dienst. Die beiden Dinge, die den Pi ausmachen, kommen danach: Datenverzeichnis auf eine SSD und Protokolle begrenzen. Wer diese beiden Handgriffe macht, hat einen Heimserver, der jahrelang durchläuft. Wer sie auslässt, tauscht irgendwann eine defekte SD-Karte.

Alle Anleitungen im Überblick: Docker auf jedem System installieren.

You may also like

Hinterlasse einen Kommentar