Wie man den Fehler 'network timed out' 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 (Containerization Platform), die die Bereitstellung und Verwaltung von Anwendungen vereinfacht. Allerdings können Benutzer gelegentlich beim Versuch, Docker-Images herunterzuladen, den Fehler 'network timed out' (Netzwerkzeitüberschreitung) erhalten. In diesem Tutorial werden Sie durch den Prozess des Verständnisses des Problems, der Diagnose der Ursache und der Umsetzung wirksamer Lösungen geführt, um den Fehler 'network timed out' zu beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/pull -.-> lab-417523{{"Wie man den Fehler 'network timed out' beim Herunterladen von Images behebt"}} docker/search -.-> lab-417523{{"Wie man den Fehler 'network timed out' beim Herunterladen von Images behebt"}} docker/info -.-> lab-417523{{"Wie man den Fehler 'network timed out' beim Herunterladen von Images behebt"}} docker/version -.-> lab-417523{{"Wie man den Fehler 'network timed out' beim Herunterladen von Images behebt"}} docker/network -.-> lab-417523{{"Wie man den Fehler 'network timed out' beim Herunterladen von Images behebt"}} end

Grundlagen des Herunterladens von Docker-Images

Docker ist eine beliebte Containerisierungspaltform (Containerization Platform), die es Entwicklern ermöglicht, Anwendungen auf konsistente und reproduzierbare Weise zu verpacken und bereitzustellen. Einer der grundlegenden Vorgänge in Docker ist das Herunterladen von Images aus einem Registry (Registrierung), wie z. B. Docker Hub, um Container zu erstellen.

Was ist das Herunterladen von Docker-Images?

Das Herunterladen von Docker-Images ist der Prozess, bei dem ein Docker-Image aus einem Registry abgerufen und lokal auf dem Docker-Host gespeichert wird. Dadurch können Sie das Image verwenden, um Container zu erstellen und auszuführen.

Prozess des Herunterladens von Docker-Images

Der Prozess des Herunterladens eines Docker-Images umfasst typischerweise die folgenden Schritte:

  1. Angabe des Images: Sie geben das Image an, das Sie herunterladen möchten, normalerweise im Format <repository>/<image>:<tag>. Beispiel: ubuntu:22.04.
  2. Kontaktaufnahme mit dem Registry: Der Docker-Client kontaktiert das angegebene Registry (z. B. Docker Hub), um das Image anzufordern.
  3. Download der Image-Layer: Das Registry antwortet, indem es die erforderlichen Image-Layer (Ebenen) bereitstellt, die dann heruntergeladen und lokal auf dem Docker-Host gespeichert werden.
  4. Erstellung des Images: Sobald alle Layer heruntergeladen sind, erstellt Docker das Image lokal, sodass Sie es verwenden können, um Container zu erstellen und auszuführen.
sequenceDiagram participant Docker Client participant Docker Registry Docker Client->>Docker Registry: Request image Docker Registry-->>Docker Client: Provide image layers Docker Client->>Docker Client: Download and store image layers Docker Client->>Docker Client: Create local image

Vorteile des Herunterladens von Docker-Images

Das Herunterladen von Docker-Images aus einem Registry bietet mehrere Vorteile:

  1. Konsistenz: Das Herunterladen von Images stellt sicher, dass Ihre Anwendung in der gleichen Umgebung auf verschiedenen Systemen ausgeführt wird, was Konsistenz und Reproduzierbarkeit fördert.
  2. Effizienz: Die schichtweise Architektur von Docker-Images ermöglicht die Wiederverwendung gemeinsamer Layer, wodurch die Menge der herunterzuladenden Daten reduziert wird.
  3. Skalierbarkeit: Das Herunterladen von Images aus einem zentralen Registry ermöglicht es Ihnen, Ihre Anwendung zu skalieren, indem Sie problemlos zusätzliche Container auf verschiedenen Hosts bereitstellen können.

Indem Sie den Prozess und die Vorteile des Herunterladens von Docker-Images verstehen, können Sie Ihre Anwendungen effektiv mit Docker verwalten und bereitstellen.

Diagnose des Fehlers 'Network Timed Out'

Beim Herunterladen von Docker-Images können Sie gelegentlich den Fehler "network timed out" (Netzwerkzeitüberschreitung) erhalten. Dieser Fehler weist darauf hin, dass der Docker-Client innerhalb der angegebenen Zeitüberschreitungsdauer keine Verbindung zum Registry (Registrierung) herstellen konnte. Dieses Problem kann durch verschiedene netzwerkbezogene Probleme verursacht werden.

Identifizierung des Fehlers

Der Fehler "network timed out" erscheint typischerweise wie folgt:

$ docker pull ubuntu:22.04
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled (Client.Timeout exceeded while awaiting headers)

Diese Fehlermeldung deutet darauf hin, dass der Docker-Client innerhalb der angegebenen Zeitüberschreitungsdauer keine Verbindung zum Docker-Registry herstellen konnte.

Mögliche Ursachen

Der Fehler "network timed out" kann durch mehrere Faktoren verursacht werden, darunter:

  1. Netzwerkverbindungsprobleme: Probleme mit der Netzwerkverbindung, wie intermittierende Internetverbindung, Firewall-Einschränkungen oder Proxy-Einstellungen, können verhindern, dass der Docker-Client erfolgreich eine Verbindung zum Registry herstellen kann.
  2. Verfügbarkeit des Registry: Das Docker-Registry, von dem Sie versuchen, Images herunterzuladen, kann vorübergehend nicht verfügbar sein oder hohen Datenverkehr haben, was zu Zeitüberschreitungen führt.
  3. Ressourcenbeschränkungen: Wenn der Docker-Host an Systemressourcen (z. B. CPU, Arbeitsspeicher oder Festplattenspeicher) knapp ist, hat er möglicherweise nicht genügend Kapazität, um den Prozess des Herunterladens von Images innerhalb der Zeitüberschreitungsdauer zu bewältigen.
  4. Proxy-Konfiguration: Falsche oder fehlerhaft konfigurierte Proxy-Einstellungen auf dem Docker-Host können den Prozess des Herunterladens von Images stören.
  5. DNS-Auflösung: Probleme mit der DNS-Auflösung auf dem Docker-Host können verhindern, dass der Client erfolgreich eine Verbindung zum Registry herstellen kann.

Indem Sie diese möglichen Ursachen verstehen, können Sie den Fehler "network timed out" beim Herunterladen von Docker-Images besser diagnostizieren und beheben.

Behebung von Problemen mit 'Network Timed Out'

Sobald Sie die möglichen Ursachen des Fehlers "network timed out" beim Herunterladen von Docker-Images identifiziert haben, können Sie die folgenden Lösungen ausprobieren, um das Problem zu beheben.

Überprüfung der Netzwerkverbindung

Stellen Sie sicher, dass der Docker-Host eine stabile und zuverlässige Netzwerkverbindung hat. Sie können die Verbindungstüchtigkeit testen, indem Sie den folgenden Befehl ausführen:

$ ping docker.com
PING docker.com (104.18.122.50) 56(84) bytes of data.
64 bytes from 104.18.122.50 (104.18.122.50): icmp_seq=1 ttl=55 time=10.2 ms

Wenn der ping-Befehl fehlschlägt oder eine hohe Latenz anzeigt, besteht möglicherweise ein Netzwerkproblem, das behoben werden muss.

Überprüfung der Verfügbarkeit des Registry

Überprüfen Sie den Status des Docker-Registry, von dem Sie versuchen, Images herunterzuladen. Sie können ein Tool wie curl verwenden, um die Verfügbarkeit des Registry zu testen:

$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}

Wenn das Registry nicht verfügbar ist oder Probleme hat, müssen Sie möglicherweise warten, bis das Problem behoben ist, oder ein anderes Registry versuchen.

Erhöhung der Zeitüberschreitungsgrenzen

Sie können versuchen, die Zeitüberschreitungsgrenzen des Docker-Clients zu erhöhen, um dem Prozess des Herunterladens von Images mehr Zeit zu geben, um abzuschließen. Bearbeiten Sie die Docker-Daemon-Konfigurationsdatei (/etc/docker/daemon.json) und fügen Sie die folgenden Zeilen hinzu:

{
  "timeout": 120
}

Dadurch wird die Zeitüberschreitung auf 120 Sekunden (2 Minuten) festgelegt. Starten Sie den Docker-Dienst neu, damit die Änderungen wirksam werden.

$ sudo systemctl restart docker

Leeren des Docker-Caches

Das Leeren des Docker-Image-Caches kann manchmal netzwerkbezogene Probleme beheben. Sie können dies tun, indem Sie die folgenden Befehle ausführen:

$ docker system prune --all --force --volumes
$ docker pull ubuntu:22.04

Der Befehl docker system prune entfernt alle nicht verwendeten Daten, einschließlich Images, Container und Volumes.

Überprüfung der Proxy-Einstellungen

Wenn der Docker-Host hinter einem Proxy steht, stellen Sie sicher, dass die Proxy-Einstellungen in der Docker-Daemon-Konfigurationsdatei (/etc/docker/daemon.json) korrekt konfiguriert sind:

{
  "proxies": {
    "default": {
      "httpProxy": "http://proxy.example.com:8080",
      "httpsProxy": "http://proxy.example.com:8080",
      "noProxy": "localhost,127.0.0.1"
    }
  }
}

Starten Sie den Docker-Dienst nach jeder Änderung der Proxy-Einstellungen neu.

Indem Sie diese Schritte befolgen, sollten Sie in der Lage sein, den Fehler "network timed out" beim Herunterladen von Docker-Images zu beheben.

Zusammenfassung

In diesem umfassenden Docker-Tutorial haben Sie gelernt, wie Sie den Fehler 'network timed out' beim Herunterladen von Images beheben können. Indem Sie die zugrunde liegenden Ursachen verstehen, das Problem diagnostizieren und die entsprechenden Lösungen anwenden, können Sie einen reibungslosen und zuverlässigen Prozess zum Herunterladen von Docker-Images gewährleisten und so eine robuste und effiziente Docker-Umgebung aufrechterhalten.