Я использую Docker Swarm для развертывания локального стороннего приложения. Машина, на которой я развертываю, работает под управлением RHEL 7.6 и имеет два сетевых интерфейса. Пользователи будут взаимодействовать с приложением с eth0
, но для внутренней связи с их системой необходимо использовать eth1
, иначе соединение будет заблокировано их брандмауэрами. Моему приложению требуются некоторые из моих служб для установления соединений с внутренними службами в их сети.
Я создал свой рой, используя:
$ docker swarm init --advertise-addr x.x.x.x
Где x.x.x.x
- это адрес eth0
inet. Это работает для входящего пользовательского трафика на сервис. Тем не менее, когда я пытаюсь установить соединение с другой службой, соединение блокируется брандмауэром.
Вне докера, на машине я могу запустить:
ssh -b y.y.y.y user@server
Где y.y.y.y
- это адрес eth1
inet, и он работает. Когда я запускаю то же самое в моем контейнере Docker Swarm, я получаю эту ошибку:
bind: y.y.y.y: Невозможно назначить запрошенный адрес
Можно ли как-нибудь использовать несколько сетевых интерфейсов с Docker Swarm и указать, какой из них используется в контейнерах? Я не мог найти много документации по этому вопросу. Нужно ли настраивать какой-то прокси?