Если у вас есть два изображения докеров, которые уже созданы, и вы хотите связать два контейнера друг с другом.
Для этого вы можете удобно запускать каждый контейнер со своим собственным именем и использовать флаг -link для обеспечения связи между ними. Однако вы не получите этого во время сборки докеров.
Когда вы находитесь в сценарии, как я, и это не ваш
docker build -t "centos7/someApp" someApp/
Это ломает, когда вы пытаетесь
curl http://172.17.0.1:localPort/fileIWouldLikeToDownload.tar.gz > dump.tar.gz
и вы застряли на «скручивание/Wget» возвращение нет " маршрут к хозяину ".
Причиной является безопасность, установленная на месте докерером, которая по умолчанию запрещает связь с контейнером в сторону хоста или других контейнеров, работающих на вашем хосте. Это было совершенно неожиданно для меня, я должен сказать, вы ожидаете, что эхосистемы докеровских машин, работающих на локальной машине, просто безупречно могут получить доступ друг к другу без особого препятствия.
Объяснение для этого подробно описано в следующей документации.
http://www.dedoimedo.com/computers/docker-networking.html
Два быстрых обходные дано, что поможет вам двигаться за счет снижения вниз безопасности сети.
Простейшая альтернатива - просто отключить брандмауэр или разрешить все. Это означает, что нужно выполнить команду, которая может быть остановлена системой stoppack, iptables -F или эквивалентной.
Надеюсь, эта информация поможет вам.
Использование комментария, так как это ужасный ответ, но я считаю, что вы можете получить доступ к нему на 172.17.1.78 - если это не настройка boot2docker. – CashIsClay
@CashIsClay Я пробовал это, и эта ошибка все еще терпит: (7) Не удалось подключиться к порту 172.17.1.78 7000: нет маршрута к хосту –
Вы не указали; вы запускаете boot2docker, или вы запускаете Docker изначально на Linux? – larsks