Как Docker контейнеры выставляют сервисы? - PullRequest
0 голосов
/ 24 мая 2019

Я развертываю стек служб с помощью команды: docker stack deploy -c <docker-compose.yml> <stack-name>

И я сопоставляю порты одной из этих служб в Docker, составляющей с ports: 8000:8000.

Используемый сетевой драйвер наложен.Я могу получить доступ к этим службам через l ocalhost:8000, через IP-адрес Peers (?).

Когда я проверяю созданную сеть, я вижу локальные IP-адреса каждого контейнера (например, 10.0.1.2).Но где находится внешний IP-адрес контейнера (такой как 172.0. ...)?

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

Как получить доступ к службам, работающим в контейнерах, с других узлов, работающих в других сетях?Не возможно получить доступ через hostIP:port?

Если так, как я могу получить IP хоста?Когда я делаю IP-адрес док-машины, я получаю сообщение "host not running".

[РЕДАКТИРОВАТЬ: я не делал сопоставления портов между хостом и виртуальной машиной в virtualbox.Теперь это работает!]

Каков наилучший способ связи между контейнерами на одном рое?

Спасибо

1 Ответ

0 голосов
/ 25 мая 2019

Каков наилучший способ связи между контейнерами на одном рое?Через обнаружение имен?

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

И для вашей другой проблемы вы, вероятно, не захотите использовать обратный прокси-сервер, такой как nginx.или трафик.

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