@sv8

Как из одного docker-контейнера обратиться к другому docker-контейнеру?

Всем привет!

На ПК локально развернуто 2 отдельных проекта:
- фронтенд - там docker-compose состоит из единственного node-контейнера;
- бэкенд - там docker-compose состоит из 3 контейнеров (нас будет интересовать только nginx на 88 порту);

Как я понимаю, для каждого проекта (docker-compose.yml) создается в итоге своя сеть (network) - на картинке ниже я изобразил, как это выглядит (если я все правильно понимаю).

В чем проблема:
1. Из браузера стучусь по localhost:3000
2. Запрос успешно доходит до node.js (вижу по логам)
3. Далее node.js дергает контейнер с API - обращается по адресу http://172.18.160.225:88*
4. ... и на этом запрос отваливается по таймауту.
* - если я из браузера обращусь по этому адресу - таймаута не будет.

В итоге получается, что у меня локально развернуто 2 соседних докер-сети, и из одной я не могу достучаться до второй. Но задача вроде тривиальная.

Люди знающие, подскажите, пожалуйста, в чем проблема и как решить эту задачу?

5d5807b0c242c726626824.png
  • Вопрос задан
  • 4506 просмотров
Пригласить эксперта
Ответы на вопрос 2
@1001001
Укажите конкретную сеть для контейнеров через networks:
и обращайтесь не через ip а через имя nginx:88 или как он у вас назван
https://docs.docker.com/compose/networking/
Ответ написан
@vitaly_il1
DevOps Consulting
А не проще будет объединить бэкенд и фронтенд в одном docker-compose?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы