Ошибка в docker pull (linux): "запрос отменен во время ожидания соединения (превышено значение Client.Timeout при ожидании заголовков) "

Тип проблемы

-- ошибка

При попытке вытащить Docker контейнеры из я сталкиваюсь с этой ошибкой:

Использование тега по умолчанию: последний Ответ об ошибке от демона: Получить https://registry-1.docker.io/v2/: net / http: запрос отменен при ожидании соединения (Client.Timeout превышен при ожидании заголовков)

## OS version
Ubuntu 18.04 (bionic)
## Docker version
Client:
Version:           18.09.4
API version:       1.39
Go version:        go1.10.8
Git commit:        d14af54266
Built:             Wed Mar 27 18:35:44 2019
OS/Arch:           linux/amd64
Experimental:      false
Server: Docker Engine - Community
Engine:
Version:          18.09.4
API version:      1.39 (minimum version 1.12)
Go version:       go1.10.8
Git commit:       d14af54
Built:            Wed Mar 27 18:01:48 2019
OS/Arch:          linux/amd64
Experimental:     false

Действия по воспроизведению

docker pull hello-world

Я не за прокси или vpn (что, кажется, проблема в других сообщениях, которые я видел об этой ошибке)

Я попытался найти исправление, но безрезультатно. service docker restart не решает проблему. Я обнаружил, что добавление "nameserver 8.8.8.8" в etc/resolv.conf временно решает проблему, но resolv.conf автоматически переписывается / обновляется до старой версии, так что это не идеальное решение. В прошлом я мог извлекать образы докеров из концентратора докеров на этом компьютере и в моей текущей сети, поэтому предположительно некоторые настройки были изменены, что вызвало эту проблему. Любая помощь приветствуется! Спасибо большое.

,

Если это уместно, вот вывод из docker info:

Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 9
Server Version: 18.09.4
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-1035-oem
Operating System: Ubuntu 18.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 31.05GiB
Name: ###(redacted)###
ID: ###(redacted)###
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
WARNING: No swap limit support

Выход из dig index.docker.io используя 127.0.0.53 (по умолчанию в resolv.conf)

 ; <<>> DiG 9.11.3-1ubuntu1.5-Ubuntu <<>> index.docker.io
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57173
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 65494
 ;; QUESTION SECTION:
 ;index.docker.io.      IN  A

 ;; ANSWER SECTION:
index.docker.io.    300 IN  CNAME   elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io. 899 IN    CNAME   us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 59 IN A 52.207.42.240
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 59 IN A 3.91.211.1
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 59 IN A 52.54.178.62

;; Query time: 404 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Apr 15 09:36:42 MDT 2019
;; MSG SIZE  rcvd: 212

Выход из dig index.docker.io используя 8.8.8.8

; <<>> DiG 9.11.3-1ubuntu1.5-Ubuntu <<>> index.docker.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37695
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;index.docker.io.       IN  A

;; ANSWER SECTION:
index.docker.io.    133 IN  CNAME   elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io. 837 IN    CNAME   us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 56 IN A 52.207.42.240
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 56 IN A 3.91.211.1
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 56 IN A 52.54.178.62

;; Query time: 19 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Apr 15 09:49:22 MDT 2019
;; MSG SIZE  rcvd: 212

1 ответ

Вероятно, не проблема с вашей установкой Docker.

Если изменение DNS на 8.8.8.8 решит проблему, то, возможно, вы получите адрес, отличный от 8.8.8.8, чем у вашей обычной службы DNS. Ты можешь использовать dig чтобы получить адрес, используя обе конфигурации:

dig index.docker.io

; <<>> DiG 9.10.3-P4-Ubuntu <<>> index.docker.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28068
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;index.docker.io.               IN      A

;; ANSWER SECTION:
index.docker.io.        926     IN      CNAME   elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io. 926 IN    CNAME   us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 926 IN A 52.54.178.62
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 926 IN A 3.91.211.1
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com. 926 IN A 52.207.42.240

;; Query time: 2 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sun Apr 14 09:15:20 CEST 2019
;; MSG SIZE  rcvd: 214

Если вы не хотите менять свой DNS, вы все равно можете добавить один из указанных выше адресов в свой /etc/hosts, это не будет сброшено при перезагрузке. Конечно, это не позволяет вам использовать другие серверы в кластере, и указанный вами адрес может стать недействительным.

Если у вас стандартный DNS в resolv.conf 127.0.0. что-то, ваша система, вероятно, настроена на использование под управлением NetworkManager dsnmasq: DNS-запросы обрабатываются службой в вашей системе, которая перенаправляет их в различные DNS. Вы можете узнать фактический используемый DNS (DNS установлен для сетевого интерфейса), используя:

nmcli dev show | grep DNS

А затем продолжите поиск медленного / недействительного DNS оттуда.

Другие вопросы по тегам