使用docker在多台服务器上部署selenium/node的问题

问题描述:

使用docker在多台服务器上部署selenium/node
宿主机selenium/hub,为什么看不到所有服务器的node

  • 环境:
    两个服务器,服务器a,服务器b

  • 问题复述:
    hub在服务器a(172.16.207.19)上,服务器a 同时有一个node
    服务器b上也有一个node
    启动服务器b node 运行命令

docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm -e HUB_PORT_4444_TCP_ADDR=172.16.207.19 -e HUB_PORT_4444_TCP_PORT=4444 -d selenium/node-chrome-debug:3.141.59

!!!但是在http://172.16.207.19:5001/grid/console 上看不到服务器b 的node 节点

上面的命令错了吗?

相关log文件

查看的服务器b的启动node 的 docker log

根据日志提示
访问http://172.16.207.19:5001/grid/register报错


## 报错信息:

[register.log|attachment](upload://fOcsQNQrUAEDfZxf48FhxBPjcEu.log) (4.6 KB)


**## 问题解决:**
经过排查,发现两个node 不是同一个网段,经过调整成为一个局域网后,hub可以识别到2个node的数据

刚刚看了一下官网,好像命令错了,官网给出的命令如下:

# Assuming a hub was already started on the default port
$ docker run -d -e HUB_HOST=<hub_ip|hub_name> -e HUB_PORT=4444 selenium/node-chrome:4.0.0-alpha-6-20200730

请多去看github原文档:https://github.com/SeleniumHQ/docker-selenium

我用的不是最新包,我用的是带debug的那个包,最新包用的是你这个命令

我感觉命令应该是一样的,最多老师那个版本是debug和release分开的,理论上命令不会变,你多测试一下看看

谢谢你,我用的命令,是老师上课讲的命令,没有区别。
我最后找到了问题,是因为我的两个node 节点没有在同一个局域网下 :sweat_smile:

不,你还是没有明白我的意思

  • hub/node 都不在同一个服务器,那么就要使用
    HUB_HOST 这种方式去链接
  • 如果都在同一个服务器,那么用 --link是最快的

下次你可以在群里问我