Kennen Sie das Gefühl? Sie haben Stunden damit verbracht, Ihr Raspberry Pi 4 als Herzstück Ihres Heimautomatisierungs- oder Monitoring-Systems einzurichten. Docker läuft wie geschmiert, und Sie sind bereit, Grafana zu installieren, um Ihre Daten wunderschön zu visualisieren. Sie tippen den vermeintlich einfachen docker run
-Befehl ein, drücken Enter – und da ist er: der gefürchtete Fehler "no matching manifest for linux/arm/v7 in the manifest list entries"
. Ein Seufzer entweicht Ihnen, der Frust steigt. Plötzlich scheint der Traum von einem eleganten Dashboard in weite Ferne gerückt.
Dieser Artikel ist genau für Sie geschrieben. Wir tauchen tief in das Problem ein, erklären, warum es auftritt, und bieten Ihnen eine detaillierte, schrittweise Anleitung, wie Sie diesen Stolperstein überwinden können. Schluss mit dem Frust – holen Sie sich Ihr Grafana zurück auf Ihren Raspberry Pi 4!
Das Herz des Problems: Architektur-Kuddelmuddel verstehen
Bevor wir uns der Lösung widmen, ist es entscheidend zu verstehen, was genau diese Fehlermeldung bedeutet. Der Kern des Problems liegt in der Welt der Prozessorarchitekturen und der Art und Weise, wie Docker-Images für verschiedene Hardware gebaut werden.
ARMv7, ARM64 und der Raspberry Pi 4
Der Raspberry Pi 4 ist ein leistungsstarker Einplatinencomputer, der auf der ARM-Architektur basiert. Genauer gesagt, sein Broadcom BCM2711 SoC ist ein 64-Bit-Prozessor (ARMv8). Das ist wichtig, denn er kann sowohl 32-Bit-Betriebssysteme (wie ältere Versionen von Raspberry Pi OS, die auf ARMv7 basieren) als auch 64-Bit-Betriebssysteme (wie das neuere Raspberry Pi OS (64-bit), das auf ARM64 oder AArch64 basiert) ausführen.
- ARMv7 (
linux/arm/v7
): Dies ist eine 32-Bit-Architektur, die auf vielen älteren Raspberry Pi-Modellen (Pi 2, Pi 3, Zero W) und den älteren 32-Bit-Versionen von Raspberry Pi OS (oder „Legacy”-Versionen) für den Pi 4 verwendet wird. Wenn Ihr Systemuname -m
alsarmv7l
ausgibt, sind Sie hier. - ARM64 (
linux/arm64
oderaarch64
): Dies ist die 64-Bit-Architektur. Der Raspberry Pi 4 kann diese nativ ausführen, wenn ein 64-Bit-Betriebssystem installiert ist. Wenn Ihr Systemuname -m
alsaarch64
ausgibt, sind Sie hier.
Das Docker-Image-Manifest
Docker-Images sind nicht universell. Ein Image, das für einen x86-Prozessor (wie in den meisten Desktop-PCs und Servern) gebaut wurde, läuft nicht direkt auf einem ARM-Prozessor. Um dieses Problem zu lösen, gibt es „Multi-Arch”-Images. Diese Images enthalten eine sogenannte „Manifest-Liste”, die den Docker-Client darüber informiert, welche spezifischen Image-Schichten für welche Prozessorarchitektur verfügbar sind.
Wenn Sie einen Befehl wie docker pull grafana/grafana-oss:latest
ausführen, fragt Ihr Docker-Client auf dem Raspberry Pi 4 das Docker-Register (Docker Hub) nach dem Image grafana/grafana-oss:latest
. Das Register sendet die Manifest-Liste zurück. Ihr Docker-Client prüft dann seine eigene Architektur (z.B. linux/arm/v7
) und sucht nach einem passenden Eintrag in dieser Liste. Der Fehler "no matching manifest for linux/arm/v7 in the manifest list entries"
bedeutet genau das: Ihr Docker-Client hat nach einem linux/arm/v7
-Image gesucht, aber der von Ihnen angeforderte Tag (oft :latest
) enthielt keinen solchen Eintrag in seiner Manifest-Liste.
Warum passiert das? Oft weil die Maintainer des Images (in diesem Fall Grafana) beschlossen haben, für neuere :latest
-Tags den Support für ARMv7 einzustellen und sich auf ARM64 zu konzentrieren, da der Raspberry Pi 4 (und neuere ARM-Hardware) 64-Bit-fähig ist. Oder aber, ein bestimmter Release-Tag enthält schlichtweg keine ARMv7-Variante.
Erste Schritte und Fehlerdiagnose
Bevor wir zur eigentlichen Lösung kommen, lassen Sie uns sicherstellen, dass wir die grundlegenden Informationen über Ihr System haben:
1. Prüfen Sie Ihre Architektur
Öffnen Sie ein Terminal auf Ihrem Raspberry Pi 4 und geben Sie folgenden Befehl ein:
uname -m
- Wenn die Ausgabe
armv7l
ist, läuft Ihr System auf einer 32-Bit-ARMv7-Architektur. Sie benötigen ein Image, das explizitlinux/arm/v7
unterstützt. - Wenn die Ausgabe
aarch64
ist, läuft Ihr System auf einer 64-Bit-ARM64-Architektur. In diesem Fall solltelatest
normalerweise funktionieren, da die meisten modernen Images ARM64 unterstützen. Wenn Sie dennoch denv7
-Fehler erhalten, könnte dies auf eine Fehlkonfiguration oder ein spezifisches Problem mit dem Docker-Daemon hindeuten, ist aber unwahrscheinlicher.
Für die Mehrheit der Benutzer, die diesen Fehler sehen, wird die Ausgabe armv7l
sein, da sie eine ältere 32-Bit-Version von Raspberry Pi OS verwenden.
2. Prüfen Sie Ihre Docker-Version
Stellen Sie sicher, dass Ihre Docker-Installation aktuell ist:
docker version
Veraltete Docker-Versionen können manchmal Probleme mit Multi-Arch-Manifest-Listen haben, obwohl dies seltener der Fall ist als das Architekturproblem selbst.
Die Lösungen: So bringen Sie Grafana auf Ihren Pi 4
Es gibt prinzipiell zwei Hauptwege, das "no matching manifest for linux/arm/v7"
-Problem zu lösen:
- Die direkte Lösung: Ein ARMv7-kompatibles Grafana-Image finden und verwenden.
- Die zukunftsorientierte Lösung: Ihr System auf 64-Bit umstellen.
Lösung 1: Ein spezifisches ARMv7-kompatibles Grafana-Image verwenden (Empfohlen für 32-Bit OS)
Dies ist die häufigste und einfachste Lösung, wenn Sie weiterhin ein 32-Bit-Raspberry Pi OS nutzen möchten. Sie müssen einen spezifischen Docker-Image-Tag von Grafana finden, der explizit für linux/arm/v7
(oder armhf
, was oft synonym verwendet wird) gebaut wurde.
Schritt 1: Kompatible Grafana-Tags finden
Navigieren Sie zum offiziellen Grafana-Image auf Docker Hub: Grafana OS on Docker Hub. Dort sehen Sie eine lange Liste von Tags. Suchen Sie nach Tags, die eine der folgenden Bezeichnungen enthalten:
-armv7
-armhf
- Oder ältere Versionsnummern, die bekanntermaßen 32-Bit ARM unterstützen (z.B. einige 8.x.x oder frühe 9.x.x Versionen, bevor der Fokus stärker auf ARM64 lag).
Einige Beispiele für Tags, die Sie ausprobieren könnten (diese können sich ändern, überprüfen Sie immer Docker Hub):
grafana/grafana-oss:9.5.3-armv7
(ersetzen Sie9.5.3
durch die gewünschte Version)grafana/grafana-oss:8.5.2-armv7
grafana/grafana-oss:latest-armv7
(falls verfügbar, bietet Grafana dies manchmal an, aber es ist nicht immer der aktuellelatest
)
Wichtig: Achten Sie darauf, eine Version zu wählen, die für Ihre Zwecke geeignet ist. Neuere Versionen haben oft mehr Funktionen und Sicherheitsupdates, aber möglicherweise keinen expliziten ARMv7-Build mehr.
Schritt 2: Ihren Docker-Befehl oder Docker-Compose anpassen
Sobald Sie einen passenden Tag gefunden haben, müssen Sie Ihren docker run
-Befehl oder Ihre docker-compose.yml
-Datei entsprechend anpassen.
Beispiel für docker run
:
Anstatt:
docker run -d --name grafana -p 3000:3000 grafana/grafana-oss:latest
Verwenden Sie den spezifischen ARMv7-Tag, z.B.:
docker run -d --name grafana -p 3000:3000 grafana/grafana-oss:9.5.3-armv7
Beispiel für docker-compose.yml
:
Wenn Sie Docker Compose verwenden (was für Grafana und Prometheus sehr verbreitet ist), ändern Sie den image
-Eintrag:
Anstatt:
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
ports:
- 3000:3000
volumes:
- grafana-data:/var/lib/grafana
restart: unless-stopped
# ... (and other services like Prometheus)
volumes:
grafana-data:
Ändern Sie es zu:
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:9.5.3-armv7 # <--- HIER ÄNDERN!
container_name: grafana
ports:
- 3000:3000
volumes:
- grafana-data:/var/lib/grafana
restart: unless-stopped
# ... (and other services like Prometheus)
volumes:
grafana-data:
Speichern Sie die Datei und führen Sie dann docker-compose up -d
aus. Grafana sollte nun erfolgreich starten!
Schritt 3: Beständigkeit der Lösung
Beachten Sie, dass Sie diesen spezifischen Tag beibehalten müssen, solange Sie ein 32-Bit-Betriebssystem verwenden. Wenn Sie ein Update durchführen möchten, müssen Sie manuell nach einem neueren ARMv7-kompatiblen Tag suchen. Das ist der Kompromiss für die Verwendung eines älteren OS-Bitness auf einem 64-Bit-fähigen Gerät.
Lösung 2: Auf 64-Bit Raspberry Pi OS umsteigen (Zukunftssicher & Empfohlen für RPi4)
Dies ist die langfristig empfehlenswerte Lösung für den Raspberry Pi 4. Wenn Sie Ihr Raspberry Pi OS auf die 64-Bit-Version umstellen, wird Ihr System als aarch64
erkannt. Dadurch kann Docker die standardmäßigen :latest
-Images (die meist ARM64-Support bieten) ohne Probleme herunterladen und ausführen.
Vorteile des 64-Bit OS:
- Bessere Kompatibilität mit den neuesten Docker-Images und Software.
- Zugriff auf die volle Leistung des 64-Bit-Prozessors Ihres Raspberry Pi 4.
- Einfachere Updates, da Sie meistens den
:latest
-Tag verwenden können. - Potenziell bessere Leistung für speicherintensive Anwendungen.
Nachteile des 64-Bit OS:
- Erfordert eine Neuinstallation des Betriebssystems. Das bedeutet, Sie müssen ein Backup Ihrer Daten erstellen und Ihr System von Grund auf neu einrichten.
- Einige sehr alte oder spezifische Softwarepakete könnten Kompatibilitätsprobleme haben (aber das ist selten für gängige Anwendungen).
Anleitung für den Umstieg:
- Backup Ihrer Daten: Sichern Sie alle wichtigen Dateien und Konfigurationen von Ihrem aktuellen Raspberry Pi OS.
- Laden Sie das 64-Bit OS herunter: Gehen Sie zur offiziellen Raspberry Pi Website und laden Sie das
Raspberry Pi OS (64-bit)
-Image herunter. - SD-Karte neu flashen: Verwenden Sie den Raspberry Pi Imager oder ein ähnliches Tool, um das 64-Bit-Image auf Ihre SD-Karte zu flashen.
- System neu einrichten: Installieren und konfigurieren Sie Ihr System, inklusive Docker und Docker Compose.
- Grafana installieren: Jetzt können Sie den Standardbefehl
docker run -d --name grafana -p 3000:3000 grafana/grafana-oss:latest
oder Ihredocker-compose.yml
mitimage: grafana/grafana-oss:latest
verwenden. Es sollte reibungslos funktionieren.
Weitere Tipps und Überlegungen
Multi-Arch-Images verstehen
Wenn Sie tiefer in die Materie einsteigen möchten, können Sie mit docker manifest inspect
überprüfen, welche Architekturen ein Image unterstützt. Beispiel:
docker manifest inspect grafana/grafana-oss:latest
Dies zeigt Ihnen eine Liste der Architekturen (wie linux/arm64
, linux/amd64
, linux/arm/v7
), für die der :latest
-Tag Manifeste enthält. Wenn linux/arm/v7
nicht in dieser Liste auftaucht, ist der Fehler verständlich.
Docker Buildx für eigene Images
Falls Sie jemals ein eigenes Docker-Image erstellen müssen, das auf verschiedenen Architekturen laufen soll, ist Docker Buildx Ihr Freund. Es ermöglicht Ihnen, Multi-Arch-Images von einem einzigen Build-Befehl aus zu erstellen, was das Problem der Architekturkompatibilität von vornherein löst.
Regelmäßige Updates
Halten Sie Ihr Raspberry Pi OS und Ihre Docker-Installation stets aktuell. Das löst nicht nur Kompatibilitätsprobleme, sondern schließt auch Sicherheitslücken.
Fazit: Vom Frust zur funktionierenden Lösung
Das "no matching manifest for linux/arm/v7"
-Problem bei der Grafana-Installation auf dem Raspberry Pi 4 mit Docker ist ein klassisches Beispiel für eine Architekturbeschränkung, die viele Anwender überrascht. Der Schlüssel zum Erfolg liegt im Verständnis der Unterschiede zwischen ARMv7 und ARM64 und der Fähigkeit, kompatible Docker-Image-Tags zu finden oder, langfristig, auf ein 64-Bit-Betriebssystem umzusteigen.
Mit der hier vorgestellten Schritt-für-Schritt-Anleitung sollten Sie in der Lage sein, den Frust hinter sich zu lassen und Ihr Grafana-Dashboard auf Ihrem Raspberry Pi 4 zum Laufen zu bringen. Egal, ob Sie sich für die explizite Tag-Verwendung entscheiden oder den Sprung zu einem 64-Bit-OS wagen – Sie haben jetzt die Werkzeuge und das Wissen, um das Problem eigenständig zu lösen. Viel Erfolg beim Visualisieren Ihrer Daten!