2017-02-18 36 views
0

У меня есть container1 работает в Service1 на port1докер контейнерный порт доступен из другого контейнера

также

У меня есть container2 работает в Service2 на port2

Как я могу получить доступ к Service2: port2 от Service1 : port1?

Я упоминаю, что контейнер соединен вместе.

Я спрашиваю, есть ли способ сделать это без доступа к docker0 IP (где порт виден)

благодаря

+0

Предполагая, что service2 запустил до службы 1 и связался как 's2' при запуске службы1, вы должны иметь возможность сделать вызов s2: в службе service1? – hurturk

+0

привет @zatta! на самом деле это невозможно –

+0

Могу ли я спросить, с какой командой вы работаете service1? – hurturk

ответ

2

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

docker network create testnet 
docker run -d --net testnet --name web nginx 
docker run -it --rm --net testnet busybox wget -qO - http://web 

BusyBox показывает образец контейнер клиента, который соединяется с Nginx контейнера с именем сети, через порт 80. Следует отметить, что этот порт не нужно быть опубликованы, чтобы быть добраться другие контейнеры.

Настройка многоконтейнерных сред с их собственной сетью является общей задачей для компоновки докеров, поэтому я рекомендую изучить этот инструмент, если вы так много сделаете.