@entermix

Как правильно сконфигурировать сеть Docker Compose?

У меня есть 3 контейнера:

Контейнер 1
services:
...
networks:
  default:
    name: api
    external: false

Контейнер 2
services:
...
networks:
  default:
    name: website
    external: false

Контейнер 3
services:
  proxy:
    networks:
      - api
      - website

networks:
  api:
    name: api
    external: true
  website:
    name: website
    external: true


Контейнер 3 сконфигурирован таким образом, чтобы был доступ к остальным - это работает.

Дополнительно нужно сделать так, чтобы с контейнера №2 был доступ к контейнеру №1

Пробую так:

Контейнер 1
services:
...
networks:
  default:
    name: api
    external: false

Контейнер 2
services:
...
  website:
    networks:
      - api
      - default

networks:
  api:
    name: api
    external: true
  default:
    name: website
    external: false

Контейнер 3
services:
  proxy:
  ...
    networks:
      - api
      - website

networks:
  api:
    name: api
    external: true
  website:
    name: website
    external: true


Так не работает. Почему? Ведь принцип тот же, что и в первом примере

Если сделать так:

Контейнер 1
services:
  api:
  ...
    networks:
      - website
      - default

networks:
  website:
    name: website
    external: true
  default:
    name: api
    external: false

Контейнер 2
services:
...

networks:
  default:
    name: website
    external: false

Контейнер 3
services:
  proxy:
    networks:
      - api
      - website

networks:
  api:
    name: api
    external: true
  website:
    name: website
    external: true


Это работает, но теперь контейнер 1 (api) знает про контейнер 2 (website). Можно ли сделать так, чтобы было наоборот?
К примеру, ни контейнер 1, ни контейнер 2 ничего не знает про контейнер 3 и это работает.
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 1
akelsey
@akelsey
Коротко "нет, нельзя". Вы объединяете общей сетью контейнеры и ожидаете какой-то логики уровня фаервола. Пробуйте изолировать контейнеры на уровне публикации портов на хостовой машине.
Ответ написан
Ваш ответ на вопрос

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

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