Ошибка "Получить https://registry-1.docker.io/v2/: net/http: request cancel" при создании изображения

Я получаю следующую ошибку при создании изображения

Step 1/10 : FROM ubuntu:14.04
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Ответ 1

Я столкнулся с той же проблемой при попытке создать или вытащить образ с помощью Docker на Win10. Изменение DNS сетевого адаптера Docker vEthernet(DockerNAT) на 8.8.8.8 исправило это для меня, как описано в этом выпуске GitHub.

Чтобы изменить DNS, перейдите в Docker (TrayIcon) → Настройки → Сеть и установите фиксированный DNS-сервер ip = 8.8.8.8.

Смена DNS-сервера в конфигурации сетевого адаптера windows тоже работала.

После перезапуска Docker может снова вытащить и собрать образы.

Информация о версии:

Windows 10 x64 Enterprise Version 1709

$ docker version
Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:05:22 2017
 OS/Arch:       windows/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:12:29 2017
  OS/Arch:      linux/amd64
  Experimental: true

Ответ 2

Я думаю, что проблема в том, что вы находитесь за прокси-сервером, и в этом случае вам нужно написать make make configuration в служебный файл Docker systemd. Это переопределит файл docker.service по умолчанию.

Если вы используете Docker для Windows, просто установите DNS по умолчанию на 8.8.8.8 на сетевом адаптере vEthernet (DockerNAT). Но помните, что это не лучшая практика, поскольку вы будете подвергаться воздействию со стороны своей офисной сети.

В среде Linux вы можете добавить переменную среды, поскольку вы находитесь за HTTP_PROXY или HTTPS_PROXY, так как вы используете порт 80 или 443 соответственно. Как показано ниже в /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

что касается HTTTP_PROXY в /etc/systemd/system/docker.service.d/https-proxy.conf

[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"

Затем просто перезагрузите докер после перезагрузки,

 $ sudo systemctl daemon-reload
 $ sudo systemctl restart docker

Надеюсь, это работает.

Ссылка: https://docs.docker.com/engine/admin/systemd/#httphttps-proxy

Ответ 3

У меня была та же проблема, и я узнал только через 30 минут, что я был в сети VPN для работы, которая блокирует другие сайты. Я отключил VPN, и это сработало :) Это определенно проблема сети. Когда он сказал "не аутентифицировано", я подумал, что, возможно, мне нужны учетные данные для входа или около того.

Ответ 4

У меня была та же проблема, и мне помогло следующее исправление: https://github.com/moby/moby/issues/22635#issuecomment-260063252

В моем случае я добавил следующие 2 строки "nameserver" в файл /etc/resolv.conf.

до:

nameserver 127.0.0.53

после:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53

Ответ 5

Это может быть старый, но фиксированный доступный здесь

https://success.docker.com/article/i-get-x509-certificate-signed-by-unknown-authority-error-when-i-try-to-login-to-my-dtr-with-default-certificates выполните следующие команды на каждом сервере

экспорт DOMAIN_NAME = bootstrap.node1.local экспорт TCP_PORT = 5000 openssl s_client -connect $DOMAIN_NAME: $TCP_PORT -showcerts/dev/null | openssl x509 -outform PEM | tee/etc/pki/ca-trust/source/anchors/$DOMAIN_NAME.crt обновление-ча-траст /bin/systemctl restart docker.service

Ответ 6

В моем случае моей компании необходимо было указать мой IP-адрес в белом списке, чтобы получить доступ к файлам cloud.docker. Поэтому не стесняйтесь сообщить ответственному лицу, если у вас есть такая ошибка.

Ответ 7

+1, это сработало для меня, однако вам также необходимо убедиться, что настройки прокси-сервера отключены, если вы используете общедоступный Интернет или настроены прокси-серверы, если вы находитесь в корпоративной сети.