стейжинг и прод, в docker-compose есть mysql hostname: mysqldb и 2 бекенд контейнера. Запускаются они через docker-compose up -d с разных директорий, hostname и порт одинаковые в двух контейнерах, отличаются только имя базы и пароль. Как это работает, впалне как бекенд понимает в какой контейнер с базой ему стучаться, если они хост и порт одинаковые?
у каждого контейнера свой ip адресс, своё имя котейнера, все зависит от того как в настройках бэкенда отписано подключение к СУБД.
обращение идет по хосту и порту
Они в разных сетях сидят. Сети изолированы
ну тогда в чем вопрос ? есть бэк, у него написано прод база 172,0,0,2:3306, стейдж база 172,0,0,3. Так и понимает куда ему ходить
Не путай человека. Если у него два совершенно одинаковых композ файла, но в раных дерикториях. Это будет два разных окружения в 2-х изолированных сетях
хост и порт, одинаковые что в проде что в стейджинге
не слушай его, он не понял сути вопроса =)
а то есть, даже если в комозе указана сеть допустим test и их запустить с разных директорий это будет 2 разных сети?
выполните в консоли: docker inspect $container1 | grep IP docker inspect $container2 | grep IP
Скорее всего нет, но нужно посмотреть в docker network ls может композ их с префиксом имени проекта создаёт
и что это мне даст, в коде я обращаюсь не по ип а по хосту mysqldb
Упустил момент, сорян.
Так и есть. композ их с префиксом имени проекта создаёт
вот тогда понял, спасибо большое
Обсуждают сегодня