Wie man den Fehler 'manifest unknown' beim Herunterladen von Images behebt

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker ist eine leistungsstarke Containerisierungspaltform, die die Art und Weise, wie Anwendungen entwickelt, deployed und skaliert werden, revolutioniert hat. Manchmal können Benutzer jedoch beim Versuch, Docker-Images herunterzuladen, den Fehler 'manifest unknown' (Manifest unbekannt) erhalten. In diesem Tutorial werden Sie durch den Prozess der Diagnose und Lösung dieses Problems geführt, um eine reibungslose Verwaltung von Docker-Images sicherzustellen.

Einführung in Docker-Images

Docker-Images sind die grundlegenden Bausteine des Docker-Ökosystems. Sie sind schreibgeschützte Vorlagen, die die erforderlichen Anweisungen enthalten, um einen Docker-Container zu erstellen. Diese Images kapseln die Anwendung, ihre Abhängigkeiten und die erforderliche Laufzeitumgebung, wodurch es einfach wird, Anwendungen konsistent in verschiedenen Umgebungen bereitzustellen und auszuführen.

Grundlagen zu Docker-Images

Docker-Images werden aus einer Reihe von Layern aufgebaut, wobei jeder Layer eine bestimmte Änderung oder Ergänzung am Image darstellt. Diese Layer werden übereinander gestapelt und schaffen so eine vollständige und eigenständige Umgebung für die Anwendung. Wenn ein Docker-Container erstellt wird, basiert er auf einem bestimmten Docker-Image und erbt alle in diesem Image definierten Layer und Konfigurationen.

graph TD A[Docker Image] --> B[Layer 1] B --> C[Layer 2] C --> D[Layer 3] D --> E[Layer 4] E --> F[Layer 5]

Herunterladen von Docker-Images

Um ein Docker-Image zu verwenden, müssen Sie es aus einem Docker-Registry (Registrierung), wie z.B. Docker Hub, dem offiziellen Docker-Image-Repository, herunterladen. Sie können ein Image mit dem Befehl docker pull herunterladen und dabei den Namen und das Tag (Version) des Images angeben, das Sie herunterladen möchten.

docker pull ubuntu:22.04

Dieser Befehl lädt das Ubuntu 22.04-Image aus der Docker Hub-Registry herunter.

Untersuchung von Docker-Images

Sobald Sie ein Docker-Image haben, können Sie seinen Inhalt untersuchen und seine Layer mit verschiedenen Docker-Befehlen wie docker image ls und docker history inspizieren.

## Auflisten aller Docker-Images
docker image ls

## Anzeigen der Historie eines Docker-Images
docker history ubuntu:22.04

Diese Befehle helfen Ihnen, die Struktur und den Inhalt Ihrer Docker-Images zu verstehen, was für die Fehlerbehebung und Verwaltung Ihrer Docker-basierten Anwendungen unerlässlich ist.

Diagnose des Fehlers 'manifest unknown'

Der Fehler 'manifest unknown' (Manifest unbekannt) ist ein häufiges Problem, das beim Herunterladen von Docker-Images aus einer Registry auftreten kann. Dieser Fehler weist normalerweise darauf hin, dass der Docker-Client das angeforderte Image oder den Image-Layer in der Registry nicht finden kann.

Grundlagen zum Fehler 'Manifest unbekannt'

Der Fehler 'manifest unknown' kann aus mehreren Gründen auftreten, darunter:

  1. Falscher Imagename oder falsches Tag: Der Imagename oder das Tag, das Sie herunterladen möchten, kann falsch oder fehlerhaft geschrieben sein.
  2. Nicht unterstützte Image-Architektur: Das Image, das Sie herunterladen möchten, ist möglicherweise nicht mit der Architektur Ihres Docker-Hosts kompatibel.
  3. Probleme mit der Registry-Verbindung: Es kann Probleme mit der Verbindung zwischen Ihrem Docker-Host und der Registry geben, die das erfolgreiche Herunterladen des Images verhindern.

Fehlerbehebung für den Fehler 'Manifest unbekannt'

Um den Fehler 'manifest unknown' zu beheben, können Sie die folgenden Schritte ausführen:

  1. Überprüfen Sie den Imagenamen und das Tag: Doppelchecken Sie den Imagenamen und das Tag, die Sie in dem docker pull-Befehl verwenden. Stellen Sie sicher, dass das Image und das Tag in der Registry existieren.
docker pull ubuntu:22.04
  1. Überprüfen Sie die Docker-Host-Architektur: Stellen Sie sicher, dass das Image, das Sie herunterladen möchten, mit der Architektur Ihres Docker-Hosts kompatibel ist. Sie können den Befehl docker version verwenden, um die Host-Architektur zu überprüfen.
docker version
  1. Untersuchen Sie die Registry-Verbindung: Überprüfen Sie Ihre Netzwerkverbindung zur Registry, indem Sie den Hostnamen oder die IP-Adresse der Registry pingen. Sie können auch den Befehl docker info verwenden, um die Registry-Konfiguration zu überprüfen.
docker info
  1. Versuchen Sie das Herunterladen erneut mit ausführlichen Protokollen: Versuchen Sie, das Image erneut mit der Option --debug oder -v herunterzuladen, um detailliertere Ausgaben zu erhalten, die helfen können, die Ursache des Problems zu identifizieren.
docker pull --debug ubuntu:22.04

Indem Sie diese Schritte befolgen, können Sie den Fehler 'manifest unknown' beim Herunterladen von Docker-Images effektiv diagnostizieren und beheben.

Lösung des Problems 'manifest unknown'

Sobald Sie die Ursache des Fehlers 'manifest unknown' diagnostiziert haben, können Sie die erforderlichen Schritte unternehmen, um das Problem zu beheben und das gewünschte Docker-Image erfolgreich herunterzuladen.

Aktualisieren des Docker-Clients und -Daemons

Eine häufige Lösung besteht darin, sicherzustellen, dass Ihr Docker-Client und -Daemon auf dem neuesten Stand sind. Veraltete Versionen von Docker können möglicherweise bestimmte Image-Formate oder Registry-Konfigurationen nicht verarbeiten, was zum Fehler 'manifest unknown' führt. Aktualisieren Sie Ihre Docker-Installation auf die neueste stabile Version.

## Update Docker on Ubuntu 22.04
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

Angeben der Image-Architektur

Wenn das Problem auf eine inkompatible Image-Architektur zurückzuführen ist, können Sie versuchen, das Image mit dem richtigen Architektur-Tag herunterzuladen. Docker unterstützt Multi-Architektur-Images, und Sie können die Option --platform verwenden, um die gewünschte Architektur anzugeben.

## Pull the Ubuntu 22.04 image for the amd64 architecture
docker pull --platform=linux/amd64 ubuntu:22.04

Zugriff auf eine andere Registry

Wenn das Problem auf Verbindungsprobleme mit der Registry zurückzuführen ist, können Sie versuchen, das Image aus einer anderen Registry herunterzuladen. Beispielsweise können Sie die LabEx Docker-Registry anstelle der Standard-Docker Hub verwenden.

## Pull an image from the LabEx Docker registry
docker pull labex.azurecr.io/ubuntu:22.04

Leeren des Docker-Caches

Manchmal kann der Fehler 'manifest unknown' durch ein zwischengespeichertes Image oder einen zwischengespeicherten Layer im Docker-Daemon verursacht werden. Sie können versuchen, den Docker-Cache zu leeren, um ein frisches Herunterladen zu erzwingen.

## Clear the Docker cache
docker system prune -a

Indem Sie diese Schritte befolgen, sollten Sie in der Lage sein, den Fehler 'manifest unknown' zu beheben und das gewünschte Docker-Image erfolgreich herunterzuladen.

Zusammenfassung

In dieser umfassenden Anleitung haben wir uns mit dem Fehler 'manifest unknown' im Zusammenhang mit dem Herunterladen von Docker-Images beschäftigt. Durch das Verständnis der Ursachen und die Umsetzung der hier vorgestellten effektiven Lösungen können Sie nun Ihre Docker-Images sicher verwalten und diesen häufigen Fehler vermeiden. Mit den erworbenen Kenntnissen können Sie Ihre Docker-basierten Workflows optimieren und die reibungslose Funktion Ihrer containerisierten Anwendungen gewährleisten.