2017-01-10 15 views
2

Я пытаюсь добиться следующего в докер:маршрутизации Docker трафика через контейнер

До:

Internet --> Host --> ContainerA 

После:

Internet --> Host --> ContainerB --> ContainerA 

Клиенты общаются с экземпляром сервера на ContainerA , Теперь я хочу разместить ContainerB между хостом и ContainerA. Связь с ContainerA теперь должна быть возможна только через ContainerB. То есть прямая сетевая связь между хостом и контейнером A должна быть запрещена, а также связь между другими контейнерами и контейнером.

Я знаю, как настроить связь между ContainerA и ContainerB, но как заблокировать прямую связь с ContainerA от хоста или других контейнеров.

ответ

0

Это зависит от того, какой инструмент вы используете для развертывания контейнеров. Предполагая, что вы говорите о ванильном докерном двигателе, вы можете достичь этого с помощью докер-компоновки. Создайте сеть, состоящую только из контейнеров ContainerA и ContainerB, и вывешивайте только порты в ContainerB для хоста и остального мира.

Сообщите мне, если это имеет смысл для вас, если вам нужно больше указаний, укажите это в комментариях, и я попытаюсь создать пример docker-compose.yaml для такой конфигурации.

+0

Чтение на нем, похоже, разумное решение. Я попробую и вернусь. – joakimb

+0

Я думаю, что вы можете выполнить 'docker run --net ' слишком –

+0

Это работает, за исключением изолирования пометок от хоста. Это нужно сделать вручную iptables. – joakimb

Смежные вопросы