Предпочтительным решением является размещение обоих контейнеров на одной и той же сети, использующие встроенное 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. Следует отметить, что этот порт не нужно быть опубликованы, чтобы быть добраться другие контейнеры.
Настройка многоконтейнерных сред с их собственной сетью является общей задачей для компоновки докеров, поэтому я рекомендую изучить этот инструмент, если вы так много сделаете.
Предполагая, что service2 запустил до службы 1 и связался как 's2' при запуске службы1, вы должны иметь возможность сделать вызов s2: в службе service1? –
hurturk
привет @zatta! на самом деле это невозможно –
Могу ли я спросить, с какой командой вы работаете service1? – hurturk