LINUX.ORG.RU
ФорумAdmin

2 сети в docker compose, одна из которой - хостовая

 , , , ,


0

3

Решаю на первый взгляд тривиальную задачу, но как оказалось тут много подводных камней.

Есть некоторой колличество сервисов в контейнерах, сервисы все находятся в одной внутренней сети из соображений безопасности.

Но одному из сервисов так-же нужен доступ во внешнюю (локальную) сеть, он там должен уметь делать discovery.

А во внутреннюю сеть контейнер должен предоставлять REST API.

Но как сделать такое с помошью docker compose я так и не нашел. Сейчас у меня вот такой файл получился.

version: "3"
services:
  telegram-bot:
    container_name : telegram
    image :  basic
    tty: true
    networks:
      - internal
  broadlink-rest:
    container_name : broadlink
    image :  basic
    tty: true
    network_mode: host
    hostname: broadlink-rest
networks:
  internal:
    internal: true

Проблемы которые я не знаю как решить :

1. Из контейнера telegram-bot я могу пинговать ip адресса моей локальной сети, несмотря на то, что она internal: true

2. Контейнер broadlink-rest видит ВСЕ сетевые интерфейсы моей хостовой машины, а я бы хотел, чтоб видел только один.

3. Внутри сети контейнеры динамически получают свои ip адресса. Каждому контейнеру во внутренней сети желательно присвоить какой-то hostname по которому его будут трогать другие контейнеры.

П.С : Буду так-же благодарен за какой-то не наколеночный материал - книгу именно по сетевому взаимодействию докер контейнеров.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.