拉取镜像
docker pull selenium/hub
docker pull selenium/node-chrome
docker pull selenium/node-chrome-debug
创建集群网络
docker network create grid
创建集群管理中心
docker run -d -p 4442-4443:4442-4443 -p 44440:4444 --net grid --name selenium-hub selenium/hub
-p 端口: 4442、4443与节点通信端口
4444 外部访问端口
--net 添加grid网络
--name 给容器命名
创建节点
docker run -d --net grid --name node_1 -p 5901:5900 -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_SESSION_TIMEOUT=300 -e SE_SESSION_REQUEST_TOMEOUT=500 -e SE_SESSION_RETRY_INTERVAL=2 -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="0.5g" selenium/node-chrome
docker run -d --net grid \
-p 5901:5900 \ # VNC端口
-p 5555:5555 \ # 不同主机时,hub与节点通信端口(同主机忽略)
-e SE_NODE_HOST=IP \ # 告诉hub,node主机的IP(同主机忽略)
-e SE_EVENT_BUS_HOST=selenium-hub \ # 连接到hub,不同主机时,为hub宿主机的IP
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \ # 节点与hub的通信端口
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ # 节点与hub的通信端口
-e SE_NODE_SESSION_TIMEOUT=300\ # 会话超时,默认300秒
-e SE_SESSION_REQUEST_TIMEOUT=500\ # 会话请求超时,默认300秒
-e SE_SESSION_RETRY_INTERVAL=2\ # 处理请求间隔时间,默认5秒
-e SE_NODE_MAX_SESSIONS=2\ # 容器并发数,默认1,一个容器/浏览器有1个CPU运行时稳定性更高
-e SE_NODE_OVERRIDE_MAX_SESSIONS=true\ # 和容器并发数配合使用,允许并发多个
-e SE_DRAIN_AFTER_SESSION_COUNT=5\ # 执行N个任务,关闭节点/容器,并重新开启一个,值要大于零以启用
-e SE_NODE_STEREOTYPE="{\"browserName\":\"chrome",\"browserVersion\":\"96\",\"platformName\": \"Linux\"}" \
--shm-size="0.5g" \ # 避免浏览器在docker容器内崩溃,根据需要调整值
selenium/node-chrome
地址
http://IP:PORT/ui
VNC默认密码
secret
评论区