如果我创建一个单独的网络,则此命令可以正常运行,但是在默认网桥上不起作用。命令在下面给出
docker run -d -p 4444:4444 --net bridge --name selenium-hub selenium/hub:3.14.0-beryllium
docker run -d --net bridge -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-beryllium
另一个问题是我正在将Selenium docker用于Docker Compose
所以我如下创建docker compose文件
# To execute this docker-compose yml file use `docker-compose -f <file_name> up`
# Add the `-d` flag at the end for detached execution
version: "3.6"
services:
selenium-hub:
image: selenium/hub
network_mode: bridge
container_name: hub
ports:
- "4446:4444"
firefox:
image: selenium/node-firefox
network_mode: bridge
container_name: firefox-node
ports:
- "5557:5555"
- "49339:5900"
environment:
- NODE_MAX_INSTANCES=5
- NODE_MAX_SESSION=5
links:
- "selenium-hub:hub"
chrome:
image: selenium/node-chrome
network_mode: bridge
container_name: chrome-node
ports:
- "5556:5555"
- "49338:5900"
environment:
- NODE_MAX_INSTANCES=5
- NODE_MAX_SESSION=5
links:
- "selenium-hub:hub"
但是在这里我遇到了一个问题,如果我们想扩展节点,那么端口冲突就会发生。我还需要公开节点端口,以便使用VNC在节点上调试Selenium脚本。
因此有可能像我们在Docker run中使用的那样从docker compose像-P选项中随机发布端口。
我们提到了Docker compose中的Selenium Grid容器名称。即使我们扩大了节点的名称,也不会与其他自定义容器发生冲突。