Lösen Sie das Problem, dass Docker Pull zurückgesetzt wird

Lösen Sie das Problem, dass Docker Pull zurückgesetzt wird

In diesem Artikel wird beschrieben, wie Sie das Problem des Zurücksetzens von Docker Pull lösen können. Die Einzelheiten sind wie folgt:

Zum Beispiel:

$ Docker-Pull Ubuntu:16.04
Es wird versucht, das Repository docker.io/library/ubuntu abzurufen ... 
Holen Sie sich https://registry-1.docker.io/v2/library/ubuntu/manifests/sha256:dd7808d8792c9841d0b460122f1acf0a2dd1f56404f8d1e56298048885e45535: Holen Sie sich https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io: lesen Sie tcp *.*.*.*:41348->50.17.62.194:443: lesen: Verbindung vom Peer zurückgesetzt

Ursache: Es scheint, dass 50.17.62.194 von TCP zurückgesetzt wurde.

Lösung:

1. Finden Sie die verfügbare IP:

$ dig auth.docker.io
 
; <<>> DiG 9.10.4-P6-RedHat-9.10.4-4.P6.fc25 <<>> auth.docker.io
;; Globale Optionen: +cmd
;; Antwort erhalten:
;; ->>HEADER<<- Operationscode: QUERY, Status: NOERROR, ID: 7119
;; Flags: qr rd ra; Anfrage: 1, Antwort: 3, Autorität: 0, zusätzlich: 1
 
;; OPT PSEUDOSEKTION:
; EDNS: Version: 0, Flags:; UDP: 4096
;; FRAGENABSCHNITT:
;auth.docker.io. IN A
 
;; ANTWORT-ABSCHNITT:
auth.docker.io.60 IN A 34.193.147.40
auth.docker.io.60 IN A 50.17.62.194
auth.docker.io.60 IN A 52.5.246.212
 
;; Abfragezeit: 130 ms
;; SERVER: *.*.*.*#53(.*.*.*.*)
;; WANN: Di., 7. März 2017, 11:03:29 CST
;; empfangene MSG-Größe: 91

2. Ändern Sie /etc/hosts, um die Auflösung von mit docker.io in Zusammenhang stehenden Domänennamen in andere verfügbare IPs zu erzwingen:

# /etc/hosts
34.193.147.40 Registrierung-1.docker.io auth.docker.io

Füge übrigens eine Beschreibung des Bildes bei und welche Bildanbieter aktuell verfügbar sind

Zunächst müssen wir eine Frage klären: Was ist der Unterschied zwischen Mirror und Private Registry?

Erklärung von Daocloud kopiert:

Es gibt einen wesentlichen Unterschied zwischen beiden.

Private Registry ist ein Image-Repository, das von Entwicklern oder Unternehmen erstellt wird. Es wird normalerweise zum Speichern von Docker-Images innerhalb des Unternehmens verwendet und dient für interne Entwicklungsprozesse sowie für die Produktfreigabe und Versionskontrolle. Mirror ist ein Proxy-Transit-Dienst. Der von uns (daocloud) bereitgestellte Mirror-Dienst stellt eine direkte Verbindung zum offiziellen Register von Docker Hub her. Auf Docker Hub gibt es Hunderttausende Docker-Images verschiedener Typen. Wenn Sie Private Registry verwenden, müssen Sie die Adresse von Private Registry direkt in Docker Pull oder Dockerfile eingeben, was normalerweise zu einer Bindung mit Private Registry und mangelnder Flexibilität führt. Um den Mirror-Dienst zu verwenden, müssen Sie lediglich den Mirror-Parameter zur Konfigurationsdatei des Docker-Daemons hinzufügen, um global und transparent auf den offiziellen Docker Hub zuzugreifen. Dadurch müssen Sie die Quelle der Dockerfile-Image-Referenz nicht ändern.

Einfach ausgedrückt ähnelt Mirror einem CDN und ist im Wesentlichen der offizielle Cache. Private Registry ähnelt einem privaten Server und hat nichts mit dem offiziellen zu tun. Da ich das Image auf den Docker-Hub ziehen möchte, ist für mich Mirror das Entsprechende. Der Spiegel von yum/apt ist etwas anders. Er zieht tatsächlich die gesamte offizielle Bibliotheksdatei als Spiegel auf seinen eigenen Server (unabhängig davon, ob sie nützlich ist oder nicht) und synchronisiert regelmäßig mit dem offiziellen. Der Docker-Spiegel speichert nur Bilder zwischen, die verwendet wurden.

Da es derzeit in China sehr schwierig ist, auf den Docker-Hub zuzugreifen, ist die Verwendung von Docker Mirror zwingend erforderlich. Derzeit bieten drei Unternehmen diese Dienste an: ustc, daocloud und aliyun, die im Folgenden nacheinander vorgestellt werden.

Wahl Null: NetEase 163 Docker Image

$ sudo echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://hub-mirror.c.163.com\"" >> /etc/default/docker
$ Service Docker Neustart

Generell schmeckt das Schweinefleisch von NetEase besser als das Schweinefleisch auf dem Markt.

Option 1: ustc-Spiegel

ustc ist ein alteingesessener Anbieter von Linux-Mirror-Diensten und wird seit der entfernten Ubuntu-Version 5.04 verwendet. Ich habe im Blog bereits erwähnt, dass Sie das ustc-Docker-Repository-Image verwenden können. Informationen zur Verwendung finden Sie in der Hilfe zur Verwendung des ustc-Docker-Images.

Das Docker-Image von ustc hat eine gute Geschwindigkeit und ich bin zufrieden damit. Aber heute habe ich festgestellt, dass es nicht funktioniert. Vielleicht hängt es mit diesem Vorfall zusammen. Heute habe ich versucht, Ubuntu herunterzuladen, aber es war sehr langsam. Es sollte direkt vom Docker-Hub heruntergeladen werden, es gab im Grunde keinen Beschleunigungseffekt.

Einer der Vorteile des ustc-Docker-Mirrors besteht darin, dass keine Registrierung erforderlich ist und es sich um einen öffentlichen Dienst handelt (das ist das ustc, mit dem ich vertraut bin).

Option 2: daocloud

DaoCloud bietet auch einen Docker-Beschleuniger, aber im Gegensatz zu ustc müssen sich Benutzer vor der Verwendung registrieren und der Datenverkehr ist auf 10 GB pro Monat begrenzt. Die Verwendung unter Linux ist relativ einfach und kann mit einem einzigen Befehl durchgeführt werden:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://{Ihre_ID}.m.daocloud.io

Die eigentliche Änderung ist /usr/lib/systemd/system/docker.service, wobei ein Parameter –registry-mirror hinzugefügt wird:

ExecStart=/usr/bin/docker-current daemon --registry-mirror=http://{Ihre_ID}.m.daocloud.io\

Nach der Einstellung müssen Sie die Konfiguration neu laden und neu starten:

systemctl Docker aktivieren; systemctl Daemon-Reload; systemctl Docker neu starten

Aber! Heute habe ich mit dem Docker-Beschleuniger von DaoCloud sehr schlechte Erfahrungen gemacht. Ich konnte den Beschleunigungseffekt kaum spüren und habe deshalb entschieden aufgegeben.

Option 3: Alicloud

Alibaba Cloud bietet auch einen Docker-Beschleuniger, der jedoch umständlicher ist als ustc: Sie müssen sich nicht nur als Alibaba Cloud-Benutzer registrieren, sondern auch der Entwicklerplattform beitreten. Aber nach all dem in der letzten Nacht fand ich, dass der Dienst wirklich gut ist, mit einer Pull-Geschwindigkeit von praktisch 1 MB/s (teilweise, weil ich auch in Hangzhou bin). Die Konfigurationsmethode ähnelt Daocloud und nach der Aktivierung des Beschleunigers wird eine URL angegeben.

Ich habe /usr/lib/systemd/system/docker.service direkt geändert:

ExecStart=/usr/bin/docker-current daemon --registry-mirror=https://{Ihre_ID}.mirror.aliyuncs.com\

Konfiguration neu laden und neu starten:

systemctl Docker aktivieren; systemctl Daemon-Reload; systemctl Docker neu starten

Beim Ziehen wird docker.io immer noch angezeigt, aber die Geschwindigkeit ist überhaupt nicht docker.io.

# Docker-Pull Ubuntu
Standard-Tag verwenden: latest
Es wird versucht, das Repository docker.io/library/ubuntu abzurufen ...
aktuell: Abrufen von docker.io/library/ubuntu
cad964aed91d: Ziehen abgeschlossen
3a80a22fea63: Ziehen abgeschlossen
50de990d7957: Ziehen abgeschlossen
61e032b8f2cb: Ziehen abgeschlossen
9f03ce1741bf: Ziehen abgeschlossen
Digest: sha256:28d4c5234db8d5a634d5e621c363d900f8f241240ee0a6a978784c978fe9c737
Status: Neueres Image für docker.io/ubuntu:latest heruntergeladen

Zusammenfassend lässt sich sagen, dass Aliyun Docker Mirror zwar einige Nachteile mit sich bringt, derzeit aber tatsächlich der beste Dienst ist. Wenn sich die Situation bei USTC wieder normalisiert, werde ich natürlich weiterhin zu USTC wechseln.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung, wo das von Docker abgerufene Image gespeichert ist
  • Docker-Pull-Image und Tag-Vorgang Pull | Tag
  • Docker-Konfiguration Alibaba Cloud Image Acceleration Pull-Implementierung
  • Detaillierte Erklärung, wo die von Docker abgerufenen Bilder gespeichert werden
  • Lösung für das Problem der langsamen Docker-Pull-Image-Geschwindigkeit
  • So lösen Sie das Problem der langsamen Docker-Pull-Image-Geschwindigkeit
  • Detaillierte Erklärung, wo die von Docker abgerufenen Bilddateien gespeichert werden
  • Detaillierte Erläuterung zum Ändern der Docker-Pull-Image-Quelle
  • Lösung für das Docker-Pull-Timeout

<<:  Was tun, wenn Sie das ursprüngliche Passwort für MySQL auf dem MAC vergessen?

>>:  Die Verwendung und der Unterschied zwischen vue3 watch und watchEffect

Artikel empfehlen

Detaillierte Erläuterung des Konzepts der Docker-Containerebenen

Inhaltsverzeichnis 01 Behälterkonsistenz 02 Konze...

So stellen Sie HBase mit Docker bereit

Standalone-HBase, lassen Sie uns zuerst darüber s...

Detaillierte Erklärung der Anwendung von CSS Sprite

CSS Sprite, auch bekannt als CSS Sprite, ist eine...

Natives JS zum Erzielen eines funkelnden Sterneneffekts

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der neuen Verwendung von vi (vim) unter Linux

Ich benutze den vi-Editor seit mehreren Jahren, h...

Lösung für das Routing-Hervorhebungsproblem von Vue-Komponenten

Vorwort Früher habe ich den Cache verwendet, um d...

Wie funktionieren die dynamischen Komponenten von Vue3?

Inhaltsverzeichnis 1. Komponentenregistrierung 1....

So entwerfen Sie MySQL-Statistikdatentabellen

Inhaltsverzeichnis Ist eine Echtzeitaktualisierun...

In wenigen Schritten zum einfachen Aufbau eines Windows-SSH-Servers

Das hier erwähnte SSH heißt Security Shell. Ich g...

js realisiert die Funktion zum Klicken zum Wechseln der Karte

In diesem Artikelbeispiel wird der spezifische Co...

Untersuchung und Korrektur des seltsamen Verhaltens von parseInt() in js

Hintergrund: Ich frage mich, ob Ihnen aufgefallen...