Docker auf dem Raspberry Pi - ARM-Images und was es zu beachten gibt
Docker auf dem Raspberry Pi - ARM-Images und was es zu beachten gibt
Der Raspberry Pi ist eine beliebte Plattform für Heimserver und Self-Hosting – Docker läuft darauf gut, wenn man ein paar Besonderheiten kennt.
ARM-Architektur verstehen
- Der Raspberry Pi nutzt ARM-Prozessoren:
- RPi 2/3 – ARMv7 (32-bit,
linux/arm/v7) - RPi 4/5 – ARM64 (64-bit,
linux/arm64) – mit 64-Bit-OS auch alsarm64nutzbar
Docker-Images müssen für die Zielarchitektur gebaut sein. Man kann kein x86-Image auf einem Raspberry Pi ausführen.
Multi-Arch-Images prüfen
Die meisten populären Images unterstützen heute mehrere Architekturen:
# Verfügbare Plattformen eines Images prüfen
docker manifest inspect nginx:alpine | grep -A 3 "platform"
# Oder per skopeo
skopeo inspect --raw docker://nginx:alpine | python3 -m json.tool | grep arch
Beim docker pull auf dem Raspberry Pi wird automatisch das passende Image geladen, wenn das Image Multi-Arch unterstützt.
Docker auf dem Raspberry Pi installieren
# Empfohlen: offizielles Skript
curl -fsSL https://get.docker.com | sh
# User zur docker-Gruppe hinzufügen (kein sudo für docker)
sudo usermod -aG docker $USER
newgrp docker
# Docker Compose als Plugin
sudo apt-get install docker-compose-plugin
# Oder als Binary
sudo pip3 install docker-compose
Images die ARM-Builds haben
Viele Self-Hosting-Anwendungen bieten native ARM-Images:
# Beispiel: Heimdall, Pi-hole, Portainer
services:
portainer:
image: portainer/portainer-ce:latest # ARM64 inklusive
pihole:
image: pihole/pihole:latest # ARM32 und ARM64
heimdall:
image: lscr.io/linuxserver/heimdall:latest # linuxserver.io = immer ARM
linuxserver.io ist eine verlässliche Quelle für ARM-kompatible Images – fast alle ihre Images unterstützen arm64 und arm/v7.
Images ohne ARM-Unterstützung
Wenn kein ARM-Image verfügbar ist, gibt es zwei Optionen:
Option 1: Selbst bauen
# Auf dem Pi direkt bauen (langsam aber einfach)
docker build -t myimage:arm .
Option 2: Cross-Compilation auf x86
# Auf dem Desktop-Rechner für ARM bauen
docker buildx build --platform linux/arm64 -t myimage:arm64 --push .
Performance auf dem Raspberry Pi
| RPi-Modell | RAM | Empfehlung |
|---|---|---|
| RPi 3B | 1 GB | Maximal 2-3 leichte Container |
| RPi 4 (4 GB) | 4 GB | 5-10 Container, leichte Dienste |
| RPi 4 (8 GB) | 8 GB | Kleine Heimserver-Stacks |
| RPi 5 | 4-8 GB | Deutlich schneller, für anspruchsvollere Workloads |
SD-Karte vs. SSD
Die SD-Karte ist der größte Performance-Bottleneck. Datenbank-Container, die viel I/O schreiben (MySQL, PostgreSQL, Grafana), sollten auf einer SSD laufen:
# Boot von SD, Daten auf SSD
# Docker-Datenpfad verschieben in /etc/docker/daemon.json
{
"data-root": "/mnt/ssd/docker"
}
Temperaturüberwachung
Bei schwerer Last wird der Pi 4 warm. Überwachung:
# Aktuelle CPU-Temperatur
vcgencmd measure_temp
# Im Container
docker run --rm --privileged debian vcgencmd measure_temp
Bei Drosselung (throttled=0x50005) helfen aktive Kühlung oder ein Gehäuse mit Kühlkörpern.