Je reçois ceci de manière cohérente (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
Cependant curl TLS fonctionne bien (à part l'erreur d'authentification):
$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
Et même un petit programme golang (pour imiter docker) fonctionne très bien:
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))
}
Le pcap pour la demande de délai d'expiration du docker TLS:
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
Qu'est-ce qui pourrait mal tourner?
linux-networking
docker
Willem
la source
la source
Réponses:
net/http: TLS handshake timeout
signifie que votre connexion Internet est lente. La valeur par défaut du délai de connexion est trop petite pour votre environnement. Malheureusement, Docker n'a aucun paramètre vous permettant de modifier le délai d'expiration de la connexion. Vous pouvez essayer de créer votre propre cache de registre ailleurs et d'en extraire des images.la source
speedtest.net
etfast.com
montre que ma vitesse Internet est de 90 Mbit / s. C'est lent? Je tire l'python:2.7-slim
image. Je peux tirerhello-world
du hub mais pas du python. Cela me donne la mêmeTLS handshake timeout
erreur.Dans mon cas, mon serveur était derrière le nat et le proxy et configuré pour détecter automatiquement le proxy ce que j'ai fait sur le terminal actuel, j'ai des paramètres de proxy d'exportation
la source
J'ai eu un problème égal, en utilisant la
docker run hello-world
1ère fois, ce qui se traduit par le téléchargement d'une image en utilisanthttps://registry-1.docker.io/v2/
, ce qui se termine parLa recherche sur le Web pendant des heures et a découvert que cela se produit chez certains utilisateurs avec Ubuntu 18.04 et la version actuelle de Docker, derrière un proxy. Une solution de contournement consiste à supprimer toute la configuration du proxy https afin de ne laisser que la configuration du proxy http, pour forcer un téléchargement http (pas https).
Je ne sais pas quelle est la vraie raison.
(au fait: j'ai eu un problème de "prise de contact TLS" avec le compositeur et le packagist. C'était à cause d'un fichier cacert.pem manquant, qui n'était pas fourni par ubuntu par défaut. Peut-être que ce problème de docker va dans le même sens ?)
la source
J'éprouve le même problème. Puis la réponse d'Azamat Hackimov m'a pointé dans la bonne direction. Ma machine est un peu lente, surtout au démarrage, lorsque je veux lancer le service. Par conséquent, le court délai expire et tue ma demande.
Voici ma solution:
Martelez simplement le serveur à la demande. Habituellement, le second réussit pour moi.
la source
Si vous utilisez un registre privé, vous devez placer le certificat que sous /etc/docker/certs.d/ registryName /ca.crt
le nom de registre changera en conséquence
De plus, veuillez modifier votre taille MTU à 1300, c'est aussi une chose que j'ai faite pour résoudre l'erreur. Un registre, je crois que vous l'avez peut-être déjà fait. Commande de changement de MTU
ip link set dev eth0 mtu 1300
La taille de la MTU est importante à vérifier pour éviter cette erreur si votre vitesse Internet est vraiment bonne
la source
x509: certificate signed by unknown authority
erreur, nonTLS handshake timeout
.Ce qui a fonctionné pour moi, c'était d'utiliser une interface réseau différente. Au lieu de me connecter via Ethernet (filaire), je suis passé au wifi. Problème résolu.
Au fait, j'étais sur une nouvelle installation de Raspbian Stretch.
la source
Aucune des réponses ci-dessus ne peut résoudre mon problème, mais j'ai trouvé que https://github.com/helm/helm/issues/5220 fonctionne pour moi!
la source
Vous pouvez obtenir l'
TLS handshake timeout
erreur si votre proxy de démon docker n'est pas configuré correctement.Pour plus de détails, voir https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
la source