У меня естьДокер в Windows: как подключиться к контейнеру из хоста с использованием контейнера IP?
- для Windows 10
- Docker для Windows, В. 1.12.5 Rev. 9503, который не опирается на boot2docker или VirtualBox больше.
У меня есть несколько экземпляров JBoss работающих в Докер изображений (172.18.0.2 является базой данных):
- экземпляр 1: Имя: JBoss-еар, IP: 172.18.0.3
- экземпляра 2: имя: jboss-eap-arquillian, IP: 172.18.0.4
, который должен работать одновременно. Каждый экземпляр JBoss экспортирует, например. его 8787, 8080 и 8443 портов.
Я также создал мостовые сети: докер сети создать --driver моста --subnet 172.18.0.0/24 bridged_network
В настоящее время я поставил локальное перенаправление портов такого, что хозяин может получить доступ к различные сервисы с использованием префикса (например, при доступе к порту экземпляра 1 808, хост использует localhost: 28080 для подключения). Но это довольно склонно к ошибкам.
Теперь я хочу получить доступ к этим портам от хоста, используя IP-адрес контейнера, например. вызов 172.18.0.4:8080 (следующий шаг: использование имени хоста: jboss-eap-arquillian: 8080). Хотя это работает плавно из контейнера в контейнер, я не смог настроить его для соединения с хостом.
Существует сетевой интерфейс Windows (тип: DockerNAT), имеющий IP 10.0.75.1, но возможно, что я создал его вручную (неуверенный ... пробовал уже довольно давно). Но это полезно при привязке порта контейнера к этому устройству, например. docker run ... -p 10.0.75.1:8080:8080. Затем я могу позвонить службе, используя 10.0.75.1:8080, но это не помогает мне для второго контейнера.
Я также пытался использовать хост-сетевое устройство Docker, но это a. похоже, работает только для одной машины б. Я не могу статически устанавливать IP-адрес, который необходим для тестов JUnit, запускающих статическую конфигурацию. Примечание. Я не могу полагаться на сетевой DHCP, чтобы назначать IP при запуске, поскольку я часто меняю свою сеть (и, следовательно, DHCP), в результате чего снова возникает незафиксированный IP-адрес.
Итак, в основном я ищу способ настроить сеть/контейнер таким образом, чтобы я мог вызвать услугу, предоставляемую контейнером (например, на порту 8080), используя IP-адрес контейнера (например, 172.18.0.3 например 1) от хоста с использованием 172.18.0.3:8080.
вы знаете, что это не докер способ и перерывы портативность. Кажется, вам нужна виртуальная машина, почему бы просто не использовать vm? – user2105103