При попытке подключения к https://index.docker.io истекло время ожидания сети


204

Я установил Docker-Toolbox только сейчас, следя за их веб-страницей

Я начал с Docker QuickStart Terminalи вижу следующее

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/


docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

bash-3.2$ 

Но когда я пытаюсь выступить docker pull hello-world, это то, что я вижу

bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository docker.io/library/hello-world
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.
bash-3.2$ 

В чем дело?

Ответы:


482

У меня была та же самая проблема этим утром, и следующие исправили это для меня:

$ docker-machine restart default      # Restart the environment
$ eval $(docker-machine env default)  # Refresh your environment settings

Похоже, это связано с тем, что виртуальная машина Docker перешла в странное состояние. Здесь есть открытый вопрос github


3
Это также исправило это для меня ... однако, я должен повторно запускать это с каждым новым сеансом терминала.
THX1137

17
Кажется, что происходит, когда я переключаюсь с моей рабочей локальной сети на домашнюю локальную сеть. Возможно, DNS недоступен из дома.
Тако

10
Я могу подтвердить, что он ломается, когда я меняю сети WiFi. Перезапуск Docker всегда исправляет это.
Стивен Харрисон

3
Отлично, в моем случае мне пришлось включить docker-machine regenerate-certs default.
rogeriopradoj

3
Святое дерьмо, теперь все понятно. Переключение настроек сети (Wi-Fi, локальная сеть, VPN, домашняя сеть, рабочая интрасеть, iphone, ...) вызывает эти странные проблемы.
Нильс Петерсон

41

Я установил Docker без Toolbox в Windows 10, поэтому версия, для которой требуется Hyper-V, должна быть включена.

Для Docker версии 1.12 мне нужно было перейти на панель задач, щелкнуть правой кнопкой мыши значок Docker, выбрать «Настройки» -> «Сеть» и установить фиксированный DNS-сервер, чтобы он использовал DNS-сервер Google на 8.8.8.8.

Как только этот параметр был изменен, он наконец заработал.


Я просто переключился на фиксированный, а затем снова переключил его и нажал «Применить». Не нужно было оставлять это на фиксированной.
Филипп Тинни

В моем случае у меня установлен зонтичный клиент OpenDNS, который устанавливает настройки сети для использования 127.0.0.1 для DNS. Docker, похоже, копирует настройки с вашей сетевой карты, поэтому поместил localhost в свои собственные настройки DNS, которые, естественно, не будут работать.
Ричард Бенсон

Работал на windows 10
мастер

16

Более простое решение - добавить следующую запись в файл / etc / default / docker.

export http_proxy = "http: // HOST: PORT /"

и перезапустите сервис докера

перезапуск сервисного докера


Предполагалось, что это будет «примерный» прокси-сервер, и не ожидал, что это вызовет путаницу
пр. Приятель

2
Для centos он находится в файле / etc / sysconfig / docker.
Приянк Десаи

Для MacOS я вручную ввел настройки прокси-сервера в «Предпочтения» Docker Desktop -> «Прокси»
user1394

8

Обновление августа 2016

При использовании Docker для Mac (версия 1.12.0) были обнаружены проблемы в виде:

➜  docker pull node
Using default tag: latest
Pulling repository docker.io/library/node
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/node/images. You may want to check your internet connection or if you are behind a proxy.`enter code here`

Эта проблема была решена путем обновления настроек беспроводной сети моего MacBook Pro, чтобы включить следующую запись DNS: 8.8.8.8

Для получения дополнительной информации, пожалуйста, обратитесь к этой (устаревшей) проблеме, в которой дан ответ, приведенный здесь.


7

Я столкнулся с этой проблемой при запуске Docker на моем MAC (хосте) с Docker VM в VBOX 5.10. Это проблема сети. Простое решение - добавить мостовую сеть к образу VBOX. Вы можете использовать включенную конфигурацию NAT, присутствующую на ВМ, но вам нужно изменить порт ssh с 50375 на 2375.


1
Это то, что у меня сработало (VirtualBox 5.0.10r104061 на Windows 10 Pro). Обратите внимание, что новичкам новее меня, что вам придется docker-machine stop default, затем добавьте сеть в диспетчер VirtualBox, затем docker-machine start default(при необходимости изменив по умолчанию имя вашей машины). Сначала я попробовал простое предложение по перезапуску + eval env @ Mark-Smith, и это не помогло мне.
Дэвид Браун

@dbaOnTap Ты находка, мой друг. Я застрял на этом в течение нескольких дней. Запуск Windows 10 Home с VirtualBox последней тестовой сборкой (5.0.15-10594) и последней панелью инструментов докера (1.10.0), это единственное, что сработало для меня.
cudacoder

4
sudo service docker stop
sudo service docker start

работает для меня..

как-то sudo service docker restartне сработало

(RHEL7)


4

На Windows 7 и если вы считаете, что вы находитесь за прокси

  1. Вход в систему по умолчанию

    $ docker-machine ssh default
    
  2. Обновить профиль для обновления настроек прокси

    docker@default:~$ sudo vi /var/lib/boot2docker/profile
    
  3. Добавить из нижеследующего при необходимости

    # replace with your office's proxy environment
    export"HTTP_PROXY=http://PROXY:PORT"
    export"HTTPS_PROXY=http://PROXY:PORT"
    
    # you can add more no_proxy with your environment.
    export"NO_PROXY=192.168.99.*,*.local,169.254/16,*.example.com,192.168.59.*"
    
  4. Выход

    docker@default:~$ exit
    
  5. Перезагрузите докер

    docker-machine restart default
    
  6. Обновить настройки среды

    eval $(docker-machine env default)
    

Вышеуказанные шаги немного подправлены, но, как указано в руководстве по устранению неполадок: https://docs.docker.com/toolbox/faqs/troubleshoot/#/update-varlibboot2dockerprofile-on-the-docker-machine


В моем случае работает, но я удалил export"HTTP_PROXY=http://PROXY:PORTи `... HTTPS_PROXY ...` потому что доступ к сети осуществляется напрямую без аутентификации.
Muka

2

Вчера я столкнулся с точно такой же проблемой, и ни один из «популярных» ответов (например, исправление DNS до 8.8.8.8) не помог мне. В конце концов я натолкнулся на эту ссылку, и это помогло ... https://github.com/docker/for-win/issues/16

Между Docker для Windows, Windows 10 и Hyper-V возникает проблема в процессе создания виртуального сетевого адаптера. В частности, вы можете получить два сетевых адаптера vEthernet (DockerNAT). Проверьте это с помощью Get-NetAdapter "vEthernet (DockerNAT)"(в консоли PowerShell с повышенными правами). Если в результате отображается более одного адаптера, вы можете отключить и переименовать его с помощью:

$vmNetAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName DockerNAT
Get-NetAdapter "vEthernet (DockerNAT)" | ? { $_.DeviceID -ne $vmNetAdapter.DeviceID } | Disable-NetAdapter -Confirm:$False -PassThru | Rename-NetAdapter -NewName "OLD"

Затем откройте Диспетчер устройств и удалите отключенный адаптер (по какой-то причине вы можете сделать это отсюда, но не в представлении адаптеров Центра управления сетями и общим доступом).


1

Я предполагаю, что у вас есть проблемы с сетью. Ты за прокси? Возможно ли, что он фильтрует соединение docker.ioили блокирует пользовательский агент докера?

Я установил панель инструментов и провел тест. Работает нормально, вот:

docker is configured to use the default machine with IP 192.168.99.101
For help getting started, check out the docs at https://docs.docker.com

bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

535020c3e8ad: Pull complete 
af340544ed62: Already exists 
library/hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/userguide/

bash-3.2$

Я переустановил Docker-Toolbox, и теперь он, кажется, работает
daydreamer

1
Я удалил существующую машину, которую создал, используя опцию force, и воссоздал ее - это работает. docker-machine rm -f <machine_name>
user1189332

1

В Windows 10. Просто щелкните правой кнопкой мыши значок док-станции systray-> Настройки ... -> Отдых -> Перезапустить Docker.


0

У меня была такая же проблема с boot2docker, и я исправил ее, перезапустив:

boot2docker restart

boot2docker устарел
Ultrasaurus

0

Я только что столкнулся с этим сегодня, 1.10.1и ни одно из существующих решений не сработало. Я пытался перезагрузить, обновить, восстановить сертификаты, ...

Я заметил, что на машине было создано много сетей. После удаления их с помощью:

docker network ls | grep bridge | awk '{print $1}' | xargs -n1 docker network rm

DNS снова начал работать.

Примечание. Вы можете игнорировать ошибки в заранее определенных сетях.


0

Если вы находитесь за прокси-сервером, этого недостаточно для установки HTTP_PROXYи HTTPS_PROXYenv. Вы должны установить его при создании машины.

Параметр для этого --engine-env:

docker-machine create -d "virtualbox" --engine-env HTTP_PROXY=http://<PROXY>:<PORT> --engine-env HTTPS_PROXY=<PROXY>:<PORT> dev

0

В моем случае при установке докера на Alpine Linux я получаю сообщение об ошибке:

Истекло время ожидания при попытке подключения к https://index.docker.io/v1/repositories/library/ ........

Используя скрипт здесь: https://github.com/docker/docker/blob/master/contrib/download-frozen-image-v2.sh

Работает. Он загружает изображение с помощью curl, а затем показывает, как распаковать и «загрузить докер».

Я попробовал описанные выше методы статического DNS на 8.8.8.8 и отключил ipv6 (я не понял прокси), и ни один из них не работал для меня.

РЕДАКТИРОВАТЬ 8/8/2016:

Я изначально использовал dropbear вместо openssh. Переустановил Alpine с openssh исправил проблему.

Следующей проблемой была ошибка «Статус выхода ApplyLayer 1»: stdout: stderr: chmod / bin / mount: access denied »во время извлечения.

От (nixaid.com/grsec-in-docker/):

Чтобы создать образ Docker, мне пришлось отключить следующие средства защиты grsec. Измените /etc/sysctl.d/grsec.conf следующим образом:

kernel.grsecurity.chroot_deny_chmod = 0 kernel.grsecurity.chroot_deny_mknod = 0 kernel.grsecurity.chroot_caps = 0 #, относящийся к пакету systemd / CAP_SETFCAP

в случае с Alpine, хотя это

/etc/sysctl.d/00-alpine.conf

перезагрузка


Я понимаю, что здесь дело не в этом, а в будущем: отключение IPv6 никогда не будет правильным ответом. Если отключение IPv6 когда-либо «устраняет» проблему, настоящая проблема лежит в другом месте.
Стивен

0

Перезапуск Docker или воссоздание образа не помогли. Я перезагрузил Windows безрезультатно.

Поразительно, когда я ssh'ed в работающий контейнер и сделал curl https://index.docker.io/v1/repositories/library/hello-world/images получил, я получил совершенно правильный ответ.

Я использовал Docker Toolbox с VirtualBox на 64-битной Windows 10 Pro.

Решение в моем случае состояло в том, чтобы удалить старую версию Docker и установить новую, которая использует Hyper-V вместо VirtualBox.

Теперь Docker снова работает.


0

Если вы находитесь за прокси, пожалуйста, используйте приведенные ниже команды

sudo mkdir /etc/systemd/system/docker.service.d

sudo cd /etc/systemd/system/docker.service.d

sudo vi http-proxy.conf
[Service]

Environment=HTTP_PROXY=http://proxy-server-ip:port" "NO_PROXY=localhost,127.0.0.1"

sudo systemctl daemon-reload 

sudo systemctl show --property=Environment docker

sudo systemctl restart docker

Попробуйте это, если вы можете получить последнюю версию Ubuntu

sudo docker run -it ubuntu bash

Невозможно найти изображение ubuntu:latestлокально

последнее: извлечение из библиотеки / ubuntu b3e1c725a85f: извлечение завершено

4daad8bdde31: вытащить завершено

63fe8c0068a8: извлечение завершено

4a70713c436f: извлечение завершено

bd842a2105a8: извлечение завершено

Дайджест:

sha256: 7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a

Статус: Загружен новый образ для Ubuntu: последние

У меня это наконец заработало :)


0

Другой сценарий: если ваш сетевой адаптер док-станции отключен, он потерпит неудачу с этой ошибкой. Адаптер называется «vEthernet (DockerNAT)» или аналогичным. Очевидно, этот адаптер каким-то образом участвует в обычном поведении вытягивания докера. Включите его, чтобы решить проблему.


0

Создайте системный каталог для службы Docker:

$ sudo mkdir -p /etc/systemd/system/docker.service.d

Создайте файл с именем, /etc/systemd/system/docker.service.d/http-proxy.confкоторый добавляет HTTP_PROXYпеременную среды:

[Обслуживание]

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

Надеюсь, поможет


-1

В Windows это произошло, когда я перешел из рабочей сети в домашнюю сеть.

Чтобы решить это, запустите:

  1. docker-machine stop
  2. docker-machine start
  3. docker-env
  4. "C:\Program Files\Docker Toolbox\docker-machine.exe" env | Invoke-Expression
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.