Я думаю, так это должно работать. В идеале вы хотите, чтобы у содержимого была изоляция, пока вы не скажете иначе.
Быстрое решение, на своих селеновых скриптах вместо localhost
укажите свой <machine name>
. Таким образом, ваши скрипты в zalenium будут пытаться разрешить адрес через сеть (которой по-прежнему будете вы) вместо того, чтобы пытаться внутренне разрешить локальный хост в своем собственном сетевом кольце.
Хотя это, вероятно, сработает для вашей машины, оно немного статично. Вероятно, вы захотите написать его как часть своего решения, чтобы оно подключалось к нескольким.
В java вы можете использовать это для получения имени работающей машины:
InetAddress addr;
addr = InetAddress.getLocalHost();
hostname = addr.getHostName();
В качестве альтернативы, чтобы создать более переносимое решение, вы можете просмотреть сетевые страницы docker.
Я думаю, что это руководство может вам помочь. Работа в сети с автономными контейнерами звучит правильно.
Короче говоря, когда вы запускаете свои док-контейнеры, вам нужно подключить их к одной и той же сети. По умолчанию:
--network bridge
Или создайте свой собственный мост:
docker network create --driver bridge MyBridgeName
и запустите оба ваших контейнера на этом имени моста:
docker run -dit --name MyImageName --network MyBridgeName ImageToRun
docker run -dit --name OtherName --network MyBridgeName OtherImageToRun
person
RichEdwards
schedule
18.08.2020