Ich bekomme dies konsequent (Ubuntu 16.04 LTS):
$ docker pull nginx
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
Allerdings Curl TLS funktioniert gut (abgesehen von dem Auth-Fehler):
$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
Und sogar ein kleines Golang-Programm (um Docker nachzuahmen) funktioniert einwandfrei:
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("https://registry-1.docker.io/v2/")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println("Got: ", string(body))
}
Der PCAP für die TLS-Zeitüberschreitungsanforderung des Dockers:
reading from file docker-timeout.pcap, link-type LINUX_SLL (Linux cooked)
00:38:54.782452 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [S], seq 26945613, win 29200, options [mss 1460,sackOK,TS val 1609360 ecr 0,nop,wscale 7], length 0
00:38:54.878630 IP registry-1.docker.io.https > my-ubuntu.52036: Flags [S.], seq 2700732154, ack 26945614, win 26847, options [mss 1460,sackOK,TS val 947941366 ecr 1609360,nop,wscale 8], length 0
00:38:54.878691 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [.], ack 1, win 229, options [nop,nop,TS val 1609384 ecr 947941366], length 0
00:38:54.878892 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1609384 ecr 947941366], length 155
00:38:55.175931 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1609459 ecr 947941366], length 155
00:38:55.475954 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1609534 ecr 947941366], length 155
00:38:56.076327 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1609684 ecr 947941366], length 155
00:38:57.280103 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1609985 ecr 947941366], length 155
00:38:59.684095 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1610586 ecr 947941366], length 155
00:39:04.492102 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1611788 ecr 947941366], length 155
00:39:04.879468 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [F.], seq 156, ack 1, win 229, options [nop,nop,TS val 1611884 ecr 947941366], length 0
00:39:04.976015 IP registry-1.docker.io.https > my-ubuntu.52036: Flags [.], ack 1, win 105, options [nop,nop,TS val 947943890 ecr 1609384,nop,nop,sack 1 {156:157}], length 0
00:39:04.976073 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1611909 ecr 947943890], length 155
00:39:05.275922 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1611984 ecr 947943890], length 155
00:39:05.876104 IP my-ubuntu.52036 > registry-1.docker.io.https: Flags [P.], seq 1:156, ack 1, win 229, options [nop,nop,TS val 1612134 ecr 947943890], length 155
Was könnte möglicherweise schief gehen?
linux-networking
docker
Willem
quelle
quelle
Antworten:
net/http: TLS handshake timeout
bedeutet, dass Sie eine langsame Internetverbindung haben. Der Standardwert für das Verbindungszeitlimit ist für Ihre Umgebung zu niedrig. Leider hat Docker keine Einstellungen, mit denen Sie das Zeitlimit für die Verbindung ändern können. Sie können versuchen, Ihren eigenen Registrierungscache an einer anderen Stelle zu erstellen und Bilder daraus zu ziehen.quelle
speedtest.net
undfast.com
zeige meine Internetgeschwindigkeit ist 90 Mbit / s. Ist das langsam Ich ziehepython:2.7-slim
Bild. Ich kannhello-world
vom Hub ziehen, aber nicht vom Python. Es gibt mir den gleichenTLS handshake timeout
Fehler.In meinem Fall war mein Server hinter dem Nat und Proxy und so eingestellt, dass er Proxy automatisch erkennt, was ich auf dem aktuellen Terminal getan habe. Ich habe Proxy-Einstellungen exportiert
quelle
Wenn Sie eine private Registrierung verwenden, müssen Sie das unter /etc/docker/certs.d/ das Zertifikat platzieren Registry /ca.crt
registryname ändert sich entsprechend
Bitte ändern Sie auch Ihre MTU- Größe auf 1300. Dies war auch eine Sache, die ich getan habe, um den Fehler zu beheben. Ich glaube, Sie haben es bereits getan. Befehl zum MTU-Wechsel
ip link set dev eth0 mtu 1300
Die MTU-Größe muss überprüft werden, um diesen Fehler zu vermeiden, wenn die Internetgeschwindigkeit wirklich gut ist
quelle
x509: certificate signed by unknown authority
Fehler führen, nichtTLS handshake timeout
.Ich hatte ein gleiches Problem, indem ich das
docker run hello-world
1. Mal verwendete, was beim Herunterladen eines Bildes dazu führtehttps://registry-1.docker.io/v2/
, welches Ende zu verwendenDurchsuchte das Web stundenlang und fand heraus, dass dies bei einigen Benutzern mit Ubuntu 18.04 und der aktuellen Docker-Version hinter einem Proxy passiert. Eine Problemumgehung besteht darin, die gesamte https-Proxy-Konfiguration zu entfernen, um nur die http-Proxy-Konfiguration zu belassen und einen http-Download (nicht https) zu erzwingen.
Ich weiß nicht, was der wahre Grund ist.
(Übrigens: Ich hatte ein gleiches "TLS-Handshake" -Problem mit Composer und Packagist. Dies lag an einer fehlenden cacert.pem-Datei, die standardmäßig nicht von Ubuntu bereitgestellt wurde. Vielleicht geht dieses Docker-Problem in die gleiche Richtung ?)
quelle
Ich habe das gleiche Problem. Dann wies die Antwort von Azamat Hackimov mich in die richtige Richtung. Mein Computer ist etwas langsam, insbesondere beim Booten, wenn ich den Dienst starten möchte. Daher tritt die kurze Auszeit in Kraft und tötet meine Anfrage.
Dies ist meine Problemumgehung:
Hammer einfach den Server mit Aufforderung. Normalerweise ist der zweite für mich erfolgreich.
quelle
Was für mich funktionierte, war die Verwendung einer anderen Netzwerkschnittstelle. Anstatt eine Verbindung über Ethernet (Kabel) herzustellen, wechselte ich zu WLAN. Problem gelöst.
Ich war übrigens auf einer neuen Installation von Raspbian Stretch.
quelle
Keine der obigen Antworten kann mein Problem lösen, jedoch habe ich festgestellt, dass die unten stehende https://github.com/helm/helm/issues/5220 für mich funktioniert!
quelle
Sie können den
TLS handshake timeout
Fehler erhalten, wenn Ihr Docker-Daemon-Proxy nicht richtig konfiguriert ist.Weitere Informationen finden Sie unter https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
quelle