Мережа вичерпана під час спроби підключитися до 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
святе лайно, це має сенс зараз. Переключення мережевих налаштувань (wifi, lan, vpn, домашня мережа, робочий інтранет, iphone, ...) викликає ці дивні проблеми.
nils petersohn

41

Я встановив Docker без Панелі інструментів у Windows 10, тому версія, для якої потрібно включити Hyper-V.

Для версії Docker версії 1.12 мені довелося зайти на панель завдань, клацнути правою кнопкою миші піктограму Docker, виберіть Налаштування -> Мережа та встановіть DNS-сервер на фіксований, щоб він використовував DNS-сервер Google на 8.8.8.8.

Як тільки це налаштування було змінено, воно остаточно спрацювало.


Я просто переключився на фіксований, а потім перемкнув його назад і натисніть застосувати. Не потрібно було залишати його зафіксованим.
Філіп Тінні

У моєму випадку встановлений клієнт-парасолька OpenDNS, який встановлює ваші мережеві настройки для використання 127.0.0.1 для DNS. Докер, здається, копіює налаштування з вашої мережевої карти, тому вводить localhost у власні налаштування DNS, які, природно, не працюватимуть.
Річард Бенсон

Працював на windows 10
майстер

16

Простіше рішення - додати наступний запис у файл / etc / default / docker

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

та перезапустіть послугу докер

перезапуск сервера


Малося на увазі бути "проксі" проксі-сервером, не сподівався, що це спричинить плутанину
pr-pal

2
Для центів це у файлі / etc / sysconfig / docker.
Priyank Desai

Для 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-конфігурацію, присутні в VM, але вам потрібно змінити ssh-порт з 50375 на 2375.


1
Це те, що працювало для мене (VirtualBox 5.0.10r104061 у Windows 10 Pro). Зверніть увагу на новачків, новіших від мене, що вам доведеться docker-machine stop default, а потім додайте мережу в диспетчер VirtualBox, а потім docker-machine start default(змінивши за замовчуванням назву вашої машини за необхідності). Я спробував спочатку простою перезапуском пропозиції Марка-Сміта + eval env, і це не зробило це для мене.
Девід Браун

@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 ...", оскільки доступ до мережі безпосередньо без аутентифікації.
Мука

2

Я вчора зіткнувся з цією самою проблемою, і жодна з "популярних" відповідей (як, наприклад, виправлення DNS до 8.8.8.8) не працювала для мене. Зрештою, це трапилося через це посилання, і це зробило трюк ... https://github.com/docker/for-win/isissue/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>
користувач1189332

1

У Windows 10. Просто клацніть правою кнопкою миші на значку док-панелі систрей-> Налаштування ... -> Відпочинок -> Відновити докер


0

У мене була така ж проблема з boot2docker і виправлено її, перезавантаживши її:

boot2docker restart

boot2docker застарілий
Ultrasaurus

0

Я щойно зіткнувся з цим сьогодні 1.10.1 і жодне з існуючих рішень не працювало. Я намагався перезапустити, оновити, відновити certs, ...

Я помітив, що у мене на машині створено багато мереж. Після видалення їх за допомогою:

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

DNS знову почав працювати.

Примітка. Ви можете ігнорувати помилки щодо попередньо визначених мереж


0

Якщо ви за проксі-сервером, його недостатньо встановити HTTP_PROXYіHTTPS_PROXY заздалегідь. Ви повинні встановити його під час створення машини.

Параметр для цього --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.09.2016:

Спочатку я використовував dropbear замість opensh. Перевстановлену програму Alpine з opensh виправили проблему.

Наступною проблемою була помилка "ApplyLayer status exit 1 stdout: stderr: chmod / bin / mount: дозвіл відхилено" під час витягування.

Від (nixaid.com/grsec-in-docker/):

Щоб створити зображення Докера, мені довелося вимкнути наступні захисти grsec. Змініть /etc/sysctl.d/grsec.conf наступним чином:

kernel.grsecurity.chroot_deny_chmod = 0 kernel.grsecurity.chroot_deny_mknod = 0 kernel.grsecurity.chroot_caps = 0 # пов'язаний із системним пакетом / CAP_SETFCAP

в альпійському випадку, хоча це

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

перезавантажити


Я усвідомлюю, що це не так, але на майбутнє: відключення IPv6 ніколи не є правильною відповіддю. Якщо відключення IPv6 колись «виправляє» проблему, реальна проблема полягає в іншому місці.
Стівен

0

Перезавантаження Докера або відтворення зображення не допомогло. Я перезавантажив Windows безрезультатно.

Дивовижно, коли я сш'д в біг контейнер і curl https://index.docker.io/v1/repositories/library/hello-world/imagesотримав абсолютно вірну відповідь.

Я використовував Docker Toolbox з VirtualBox на 64-бітній Windows 10 Pro.

У моєму випадку рішенням було видалення старої версії Docker та встановлення нової, яка використовує Hyper-V замість VirtualBox.

Тепер Докер знову працює.


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

Створіть системний каталог, що випадає для послуги докер:

$ 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.