boot2docker: нет маршрута к хосту

У меня возникли проблемы с тем, чтобы Docker Toolbox для Windows 10 работал за корпоративным прокси.

Я не могу заставить докер войти или запустить докер, поэтому вот что я сделал для отладки.

Я создал простую машину Ubuntu на виртуальной машине.

На моем хост-компьютере я запускаю простой сервер, работающий на порту 8000.

В Убунту:

$ curl 10.0.2.2:8000
$ [it retrieves the html being served]

$ curl www.google.com 
$ curl (7) Failed to connect to www.google.com port 80: Connection refused
$ export http_proxy=http://my-proxy:3128
$ curl www.google.com
$ [302 HTTP response from google]

В boot2docker:

$ curl 10.0.2.2:8000
$ [it retrieves the html being served]

$ curl www.google.com 
$ curl (7) Failed to connect to www.google.com port 80: Connection refused
$ export http_proxy=http://my-proxy:3128
$ curl www.google.com
$ curl: (7) Failed to connect to my-proxy:3128: No route to host

Что тут происходит?


person dwjohnston    schedule 07.11.2017    source источник
comment
@Мэтт - нет - no route to host   -  person dwjohnston    schedule 07.11.2017
comment
Вы запускали $(boot2docker shellinit)? (github.com/boot2docker/boot2docker/issues/ и ниже)   -  person VonC    schedule 07.11.2017
comment
@VonC - у меня нет boot2docker в качестве аргумента командной строки - должен ли я?   -  person dwjohnston    schedule 07.11.2017
comment
Вы должны открыть сеанс ssh, в котором будет распознан boot2docker.   -  person VonC    schedule 07.11.2017
comment
@VonC Насколько я понимаю, команд docker-machine должно быть достаточно? - И да- я запускаю команды env, которые он мне дает   -  person dwjohnston    schedule 07.11.2017
comment
Затем env |grep DOCKER: вы видите DOCKER_HOST?   -  person VonC    schedule 07.11.2017
comment
Я почти уверен, что это проблема с VirtualBox - проверим.   -  person dwjohnston    schedule 07.11.2017


Ответы (2)


Хорошо, я наконец решил это.

Проблема заключалась в том, что прокси-сервер компании существует в той же подсети, что и мост виртуальной машины Docker по умолчанию. (т.е. 172.17.х.х).

Просто быстрый обходной путь — вы можете решить эту проблему, изменив его в виртуальной машине докера.

$ docker-machine ssh mydockervm

$ ifconfig docker0 172.18.0.1 netmask 255.255.0.0
person dwjohnston    schedule 23.11.2017

Я экспериментирую с той же проблемой, и я использую собственный ответ @dwjohnston, чтобы найти причину проблемы.

В моем случае конфликт моста виртуальной машины docker был связан с выполнением старого docker-compose.

Я решаю этот запуск:

$ docker network prune 

Чтобы почистить сетевые соединения...

Странным моментом в этом является то, что мост все еще был отображен, если все контейнеры, запущенные компоновкой, уже были удалены.

Примечание. Кажется, это ответ «У меня такая же проблема», но данное решение отличается... отличается...

person Guillaume Barré    schedule 14.12.2018
comment
@Nirekin...... ты только что спас мне день!!!!... Я уже собирался сдаться, когда увидел твой комментарий об обрезке. - person virtuvious; 18.02.2019