Контейнер Docker не может подключиться к ip host - PullRequest
0 голосов
/ 21 января 2019

Я развернул панель мониторинга netflix hystrix с турбиной в док-контейнере, я могу получить доступ к http://ip:8081/hystrix, но когда я пытаюсь отслеживать поток турбины, он зависает и не возвращает никакой информации, я тестирую с помощью curl внутри контейнер и выполнить curl http://localhost:8081/turbine.stream и curl http://containername:8081/turbine.stream, с этими двумя командами работает отлично, но когда я использую ip хоста как curl http://hostip:8081/turbine.stream, завиток выбрасывает Failed to connect to hostip port 8081: No route to host, я не могу найти решение, может кто-нибудь помочь мне с этой проблемой ?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 января 2019

Чтобы получить доступ к контейнеру через Host IP, необходимо убедиться в следующем:

  1. Сопоставление портов позволяет через сам хост / публичный IP-адрес не только localhost.

    Вы можете проверить это, выполнив docker ps на хосте докера и поищите столбец PORTS, значение по умолчанию должно быть следующим: 0.0.0.0:8081->8081/tcp, что означает, что он может принимать соединение с любого интерфейса, публичного, частного или локального.

  2. Брандмауэр не блокирует соединение через порт 8081.

    По умолчанию брандмауэр хоста должен управляться самим демоном Docker, поэтому в брандмауэре будет разрешен порт 8081, но может быть другой случай: либо Docker не управляет брандмауэром хоста, либо существует дополнительный уровень что мешает подключению

...