У меня есть некоторый опыт работы с Docker Compose и связыванием контейнеров.В среде без роя вы можете легко подключиться, например, из контейнера web
к контейнеру db_mysql
, используя его имя (например, в PHP я могу настроить соединение MySQL следующим образом:
$dsn = 'mysql:host=db_mysql;
Мне трудно понять, как это работает с Docker в режиме Swarm, особенно учитывая механизмы «реплики» и «балансировки нагрузки».
Допустим, у меня есть 5 разныхDocker Machines, каждый из которых имеет свой публичный IP-адрес, участвует в Swarm. У меня также есть служба web
и служба db
, которые реплицируются на эти 5 разных компьютеров (по 1 экземпляру на каждую машину).
Мой вопрос: как я могу сделать любой из контейнеров 5 web
, связаться с любым из контейнеров 5 db_mysql
, не заставляя эти контейнеры web
знать какие-либо публичные IP-адреса Docker Machine или факт существования этих контейнероввнутри Роя?