Me sale esto consistentemente (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
Sin embargo, curl TLS funciona bien (aparte del error de autenticación):
$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
E incluso un pequeño programa golang (para imitar docker) funciona 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))
}
El pcap para la solicitud de tiempo de espera TLS de Docker:
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é podría estar yendo mal?
linux-networking
docker
Willem
fuente
fuente
Respuestas:
net/http: TLS handshake timeout
significa que tienes una conexión a internet lenta. El valor predeterminado del tiempo de espera de conexión es demasiado pequeño para su entorno. Lamentablemente, Docker no tiene ninguna configuración que le permita cambiar el tiempo de espera de la conexión. Puede intentar crear su propio caché de registro en otro lugar y extraer imágenes de él.fuente
speedtest.net
yfast.com
mostrar mi velocidad de internet es de 90 Mbit / s. ¿Eso es lento? Estoy tirando de lapython:2.7-slim
imagen. Soy capaz de extraerhello-world
del concentrador, pero no de Python. Me da el mismoTLS handshake timeout
error.En mi caso, mi servidor estaba detrás de la nat y el proxy y estaba configurado para detectar automáticamente el proxy.
fuente
Tuve un problema igual, al usar la
docker run hello-world
primera vez, lo que resulta en descargar una imagen usandohttps://registry-1.docker.io/v2/
, que terminaBuscando en la web durante horas y descubrió que esto sucede en algunos usuarios con ubuntu 18.04 y la versión actual de Docker, detrás de un proxy. Una solución alternativa es eliminar toda la configuración del proxy https para dejar solo la configuración del proxy http, para forzar una descarga http (no https).
No sé, cuál es la verdadera razón.
(por cierto: tuve un problema igual de "TLS handshake" con el compositor y el empaquetador. Esto se debió a la falta de un archivo cacert.pem, que no fue proporcionado por ubuntu por defecto. Tal vez este problema del acoplador va en la misma dirección ?)
fuente
Si está utilizando un registro privado, es necesario colocar el certificado para que bajo /etc/docker/certs.d/ registryname /ca.crt
nombre de registro cambiará en consecuencia
Además, cambie el tamaño de su MTU a 1300, esto también fue una cosa que hice para resolver el error. Registro uno, creo que ya lo habrás hecho. Comando para cambio de MTU
ip link set dev eth0 mtu 1300
Es importante verificar el tamaño de MTU para evitar este error si la velocidad de Internet es realmente buena
fuente
x509: certificate signed by unknown authority
error, noTLS handshake timeout
.Experimento el mismo problema. Entonces la respuesta de Azamat Hackimov me señaló en la dirección correcta. Mi máquina es algo lenta, especialmente en el momento del arranque, cuando quiero iniciar el servicio. Por lo tanto, el breve tiempo de espera entra en acción y mata mi solicitud.
Esta es mi solución:
Simplemente martille el servidor con solicitud. Por lo general, el segundo es exitoso para mí.
fuente
Lo que funcionó para mí fue usar una interfaz de red diferente. En lugar de conectarme a través de Ethernet (por cable), cambié a wifi. Problema resuelto.
Por cierto, estaba en una nueva instalación de Raspbian Stretch.
fuente
Ninguna de las respuestas anteriores puede resolver mi problema, sin embargo, encontré que a continuación https://github.com/helm/helm/issues/5220 funciona para mí!
fuente
Puede obtener el
TLS handshake timeout
error si su proxy de Docker Daemon no está configurado correctamente.Para obtener más detalles, consulte https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
fuente