Подключиться к процессу докера с хоста - PullRequest
0 голосов
/ 10 сентября 2018

В настройке Docker-контейнера (3 контейнера) с использованием определяемой пользователем мостовой сети.

  • Я могу получить доступ к контейнеру из другого контейнера (используя как IP, так и имя контейнера).

  • Но я не могу пропинговать процесс (запущенный в контейнере) с моей хост-машины. Может ли кто-нибудь помочь мне в этом? это возможно?

Смотрите мой файл для создания Docker

Настройка на windows 8

Из 4 контейнеров, упомянутых в файле compose - ни один не доступен с хоста. (ни используя имена контейнеров, ни IP). Хотя я могу получить доступ к одному контейнеру из другого, используя как IP, так и имя контейнера.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

У меня нет намного больше представления о настройке Docker в Windows, но я думаю, что ваш сервис прослушивает localhost (внутри контейнера), поэтому он недоступен извне

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

Пример:

Если Nginx работает на порту 80 внутри контейнера, но адрес привязки - 127.0.0.1 или localhost (он будет доступен только внутри контейнера, а не снаружи или с хост-компьютера), если вы хотите получить доступ к вашему nginx извне необходимо изменить адрес привязки localhost на 0.0.0.0

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

0 голосов
/ 10 сентября 2018

Я предполагаю, что вы пытаетесь получить доступ к своему контейнеру из его имени службы, объявленного в файле compose, но вы не можете сделать это вне сети bridge, объявленной в файле compose.

С вашего хоста вам нужно использовать IP-адрес контейнера, и вы можете получить его с помощью следующей команды:

docker inspect <container> -f '{{.NetworkSettings.Networks.<network>.IPAddress}}'

Очевидно, вам необходимо заменить заполнитель <container> на имя вашего контейнера и <network> на имя вашей сети.

Например, на основе вашего servers.yml файла вы можете получить IP-адрес zookeeper с помощью docker inspect zookeeper -f '{{.NetworkSettings.Networks.bridge.IPAddress}}'

Подробнее о команде inspect и

см. В документации по докеру .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...