Я получаю это последовательно (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
Однако curl TLS работает нормально (кроме ошибки аутентификации):
$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
И даже небольшая программа golang (для имитации докера) работает нормально:
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))
}
Pcap для запроса времени ожидания 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
Что может быть не так?
linux-networking
docker
Willem
источник
источник
Ответы:
net/http: TLS handshake timeout
означает, что у вас медленное интернет-соединение. Значение по умолчанию времени ожидания подключения слишком мало для вашей среды. К сожалению, в Docker нет настроек, позволяющих изменить время ожидания соединения. Вы можете попытаться создать свой собственный кэш реестра где-нибудь еще и извлечь из него изображения.источник
speedtest.net
иfast.com
покажи у меня скорость интернета 90 Мбит / с. Это медленно? Я тянуpython:2.7-slim
изображение. Я могу вытащитьhello-world
из хаба, но не питона. Это дает мне ту жеTLS handshake timeout
ошибку.В моем случае мой сервер был позади nat и proxy и настроен на автоматическое определение прокси, что я сделал на текущем терминале, у меня есть настройки прокси экспорта
источник
У меня была такая же проблема, используя
docker run hello-world
1-й раз, что приводит к загрузке изображения с помощьюhttps://registry-1.docker.io/v2/
, который заканчиваетсяПоиск в Интернете в течение нескольких часов и обнаружил, что это происходит у некоторых пользователей с Ubuntu 18.04 и текущей версией докера, за прокси. Обходной путь - удалить всю конфигурацию https-прокси, чтобы оставить только конфигурацию http-proxy, чтобы принудительно загрузить http (не https).
Не знаю, в чем настоящая причина.
(кстати: у меня была одинаковая проблема "TLS handshake" с composer и packagist. Это было из-за отсутствия файла cacert.pem, который не был предоставлен ubuntu по умолчанию. Возможно, эта проблема с докером идет в том же направлении ?)
источник
Я испытываю ту же проблему. Тогда ответ Азамата Хацкимова указал мне правильное направление. Моя машина несколько медленная, особенно во время загрузки, когда я хочу запустить службу. Поэтому короткий тайм-аут срабатывает и убивает мою просьбу.
Это мой обходной путь:
Просто забей сервер запросом. Обычно второй успешен для меня.
источник
Если вы используете личный реестр, вам нужно поместить сертификат для этого в /etc/docker/certs.d/ registryname /ca.crt
имя реестра будет меняться соответственно
Кроме того, пожалуйста, измените размер MTU на 1300, это было также одной вещью, которую я сделал, чтобы устранить ошибку. Реестр один, я полагаю, вы, возможно, уже сделали. Команда для изменения MTU
ip link set dev eth0 mtu 1300
Размер MTU важно проверить, чтобы избежать этой ошибки, если у вас действительно хорошая скорость интернета
источник
x509: certificate signed by unknown authority
ошибкеTLS handshake timeout
.То, что работало для меня, было использовать другой сетевой интерфейс. Вместо подключения через Ethernet (проводной) я переключился на Wi-Fi. Проблема решена.
Кстати, я был на новой установке Raspbian Stretch.
источник
Ни один из приведенных выше ответов не может решить мою проблему, однако я обнаружил, что ниже https://github.com/helm/helm/issues/5220 работает для меня!
источник
Вы можете получить сообщение об
TLS handshake timeout
ошибке, если прокси-сервер демона Docker настроен неправильно.Для получения дополнительной информации см. Https://docs.docker.com/config/daemon/systemd/#httphttps-proxy.
источник