Saya mendapatkan ini secara konsisten (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
Namun curl TLS berfungsi dengan baik (terlepas dari kesalahan auth):
$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
Dan bahkan program golang kecil (untuk meniru buruh pelabuhan) berfungsi dengan baik:
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 untuk permintaan batas waktu TLS buruh pelabuhan:
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
Apa yang mungkin salah?
linux-networking
docker
Willem
sumber
sumber
Jawaban:
net/http: TLS handshake timeout
berarti Anda memiliki koneksi internet yang lambat. Nilai default batas waktu koneksi terlalu kecil untuk lingkungan Anda. Sayangnya buruh pelabuhan tidak memiliki pengaturan yang memungkinkan Anda mengubah batas waktu koneksi. Anda dapat mencoba membuat cache registri Anda sendiri di tempat lain dan menarik gambar darinya.sumber
speedtest.net
danfast.com
tunjukkan kecepatan internet saya adalah 90 Mbit / s. Apakah itu lambat? Saya menarikpython:2.7-slim
gambar. Saya dapat menarikhello-world
dari hub tetapi bukan yang python. Ini memberi sayaTLS handshake timeout
kesalahan yang sama .Dalam kasus saya server saya berada di belakang nat dan proksi dan diatur untuk mendeteksi proxy secara otomatis apa yang telah saya lakukan pada terminal saat ini saya memiliki pengaturan proxy ekspor
sumber
Saya memiliki Masalah yang sama, dengan menggunakan
docker run hello-world
waktu 1, yang menghasilkan pengunduhan gambar menggunakanhttps://registry-1.docker.io/v2/
, yang berakhir denganMencari di web selama berjam-jam dan menemukan, bahwa ini terjadi pada beberapa pengguna dengan ubuntu 18.04 dan rilis docker saat ini, di belakang proxy. Solusinya adalah menghapus semua konfigurasi https-proxy agar hanya meninggalkan konfigurasi http-proxy, untuk memaksa unduhan http (bukan https).
Tidak tahu, apa alasan sebenarnya.
(Omong-omong: Saya memiliki masalah "TLS handshake" yang sama dengan komposer dan pembuat paket. Ini karena file cacert.pem yang hilang, yang tidak disediakan oleh ubuntu secara default. Mungkin masalah docker ini mengarah ke arah yang sama ?)
sumber
Jika Anda menggunakan registri pribadi, Anda harus menempatkan sertifikat di bawah /etc/docker/certs.d/ registryname /ca.crt
registryname akan berubah
Juga, tolong ubah ukuran MTU Anda menjadi 1300, ini juga satu hal yang saya lakukan untuk menyelesaikan kesalahan. Registry yang saya yakin Anda mungkin sudah melakukannya. Perintah untuk perubahan MTU
ip link set dev eth0 mtu 1300
Ukuran MTU penting untuk diperiksa untuk menghindari kesalahan ini jika kecepatan internet Anda benar-benar baik
sumber
x509: certificate signed by unknown authority
kesalahan, tidakTLS handshake timeout
.Saya mengalami masalah yang sama. Kemudian jawaban Azamat Hackimov menunjuk saya ke arah yang benar. Mesin saya agak lambat, terutama saat boot, ketika saya ingin meluncurkan layanan. Karena itu, batas waktu yang singkat itu menendang dan membunuh permintaan saya.
Ini adalah solusi saya:
Cukup palu server dengan permintaan. Biasanya yang kedua berhasil untuk saya.
sumber
Apa yang berhasil bagi saya adalah menggunakan antarmuka jaringan yang berbeda. Alih-alih terhubung melalui ethernet (kabel), saya beralih ke wifi. Masalah terpecahkan.
Ngomong-ngomong, saya baru saja menginstal Peregangan Raspbian.
sumber
Tidak ada jawaban di atas yang dapat menyelesaikan masalah saya, namun saya menemukan bahwa di bawah ini https://github.com/helm/helm/issues/5220 cocok untuk saya!
sumber
Anda bisa mendapatkan
TLS handshake timeout
kesalahan jika proxy daemon buruh pelabuhan Anda tidak dikonfigurasi dengan benar.Untuk detail lebih lanjut, lihat https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
sumber