nepster-web
@nepster-web

Как подружить два докера?

Есть две докер сборки (не 2 контейнера и именно полноценные две отдельные сборки в каждой из которых свои контейнеры).

Предположим одна сборка это API, а вторая Client.

Каждая из них имеет свою внутреннюю сеть:
...
networks:
    travelnet:
        driver: bridge
        ipam:
            config:
                - subnet: 172.27.0.0/24
...


В другой докер сборке (Client) все точно так-же, только IP: 192.168.100.0/24

Соответственно на мою локальную машину порты прокидываются, все работает, так-же работает внутренняя сеть между образами внутри каждой сборки.

Однако проблема состоит в том, что я не могу обратиться с контейнера одной сборки в контейнер другой сборки.
К примеру в сборке API в контейнере alpine я делаю
ping 192.168.100.17 - и ничего

и наоборот из Client в контейнере alpine я делаю
ping 172.27.0.0.100 - и так-же пинг не идет.

Подскажите, пожалуйста, как наладить такой контакт ?
  • Вопрос задан
  • 338 просмотров
Пригласить эксперта
Ответы на вопрос 1
clockworkbird
@clockworkbird
leko.team
Сам еще не пользовался, но насколько знаю, делается через external-network:

В том сервисе первой сборки, из которого нужен коннект к сети из другой сборки прописываете соответствующий network из второй сборки, а в во второй сборке network'е, к которому коннектитесь прописываете параметр: external: true

Например:
# first/docker-compose.yml
version: '2'
services:
  first:
    ...
    networks:
      - network1
networks:
  network1:
    driver: bridge
...

# second/docker-compose.yml
version: '2'
services:
  second:
    ...
    networks:
      - first_network1
networks:
  first_network1:
    external: true


После этого можно обращаться к из одного сервиса к другому - из first делать ping second
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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