Использование двух IP-адресов хоста с docker -compose - PullRequest
0 голосов
/ 25 января 2020

Я погуглил это до смерти.

Я хочу, чтобы один контейнер был привязан к одному IP-адресу / порту хоста, а другой - к другому по разным причинам.

У меня есть ( выхватил некоторую информацию)

container1:
 network_mode: 
  host ports: 
   - 192.168.1.224:80:80

container2: 
 network_mode: 
  host ports: 
   - 192.168.1.225:80:80

Docker на самом деле запускается, но когда я посещаю каждый IP в браузере, оба URL будут возвращать содержимое container1.

Кто-нибудь делал это? Все, что я могу найти в Интернете, в основном связано с docker, а не с docker -композицией (начиная с docker с некоторыми аргументами), или с людьми, которые утверждают, что это должно быть сделано по-другому.

1 Ответ

2 голосов
/ 25 января 2020

Удалите настройку network_mode: host: она вам мешает.

Указание network_mode: host обходит все обычные настройки Docker сети. Настройка ports: не влияет. Каждый процесс здесь видит оба ваших хост-интерфейса и, по-видимому, пытается связать их оба. Если вы используете значение по умолчанию network_mode: bridge, каждый контейнер получает изолированный сетевой стек, и вы можете использовать ports:, как вы это делали, для выборочного предоставления контейнеров указанным c интерфейсам.

network_mode: host is действительно уместно только в нескольких конкретных случаях; только если ваш серверный процесс прослушивает тысячи портов, или его указанный c порт непредсказуем, или если у вас есть реальная необходимость проверить настройки сети хоста, но вы не можете запустить процесс непосредственно на хосте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...