Selenium Grid Hub镜像提供Selenium Grid Hub功能,需与一个或多个Selenium Grid Node配合使用,用于实现WebDriver测试的远程执行。Hub作为Selenium Grid的中心节点,负责协调和分发测试任务至连接的Node节点,支持分布式测试环境的构建。
http://localhost:4444/ui),用于查看Grid运行状态和任务执行情况Hub与Node需在同一网络中通过容器名称通信,首先创建专用网络:
bashdocker network create grid
使用创建的网络启动Hub容器,映射必要端口:
bashdocker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest
参数说明:
-d:后台运行容器-p 4442-4444:4442-4444:映射端口(4442=事件总线发布端口,4443=事件总线订阅端口,4444=Hub服务端口)--net grid:加入之前创建的grid网络--name selenium-hub:指定容器名称(Node需通过此名称通信)在同一网络中启动Node容器,需配置与Hub的事件总线通信参数。以下示例包含Chrome、Edge、Firefox三种浏览器节点:
Linux/macOS命令
bash# Chrome节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-chrome:latest # Edge节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-edge:latest # Firefox节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-firefox:latest
Windows PowerShell命令
powershell# Chrome节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-chrome:latest # Edge节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-edge:latest # Firefox节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-firefox:latest
Node配置参数说明:
--shm-size="2g":设置共享内存大小(浏览器运行需较大共享内存,避免崩溃)SE_EVENT_BUS_HOST:Hub容器名称(需与Hub的--name一致)SE_EVENT_BUS_PUBLISH_PORT:Hub事件总线发布端口(固定4442)SE_EVENT_BUS_SUBSCRIBE_PORT:Hub事件总线订阅端口(固定4443)将测试代码中的远程WebDriver目标地址指向Hub服务端口:
java// Java示例 WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444"), new ChromeOptions());
通过Grid UI查看节点状态和任务执行情况:
访问 http://localhost:4444/ui
测试完成后,停止并删除容器,可选择删除网络:
bash# 停止所有Grid容器(Hub和Node) docker stop selenium-hub $(docker ps -q --filter "network=grid") # 删除所有Grid容器 docker rm selenium-hub $(docker ps -aq --filter "network=grid") # 删除Grid网络(可选) docker network rm grid
镜像标签遵循以下结构,用于指定Selenium Grid版本和发布日期:
selenium/hub-<Major>.<Minor>.<Patch>-<YYYYMMDD>
示例:Selenium Grid Server 4.9.0(2023年4月26日发布)对应标签:
selenium/hub:4(主版本4的最新版)selenium/hub:4.9(主版本4.9的最新版)selenium/hub:4.9.0(具体版本4.9.0)selenium/hub:4.9.0-20230426(包含发布日期的完整标签)建议:生产环境使用完整标签(如4.9.0-20230426)以固定版本,避免latest标签带来的版本变动风险。
| 环境变量名 | 作用 | 示例值 |
|---|---|---|
SE_EVENT_BUS_HOST | Hub容器名称(Node与Hub通信地址) | selenium-hub |
SE_EVENT_BUS_PUBLISH_PORT | Hub事件总线发布端口 | 4442 |
SE_EVENT_BUS_SUBSCRIBE_PORT | Hub事件总线订阅端口 | 4443 |
更多配置示例和高级用法,请参考GitHub项目文档:
https://github.com/SeleniumHQ/docker-selenium/blob/trunk/README.md#hub-and-nodes
本项目基于https://raw.githubusercontent.com/SeleniumHQ/selenium/trunk/LICENSE%E5%BC%80%E6%BA%90%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE%EF%BC%8C%E6%BA%90%E4%BB%A3%E7%A0%81%E7%94%B1%E7%A4%BE%E5%8C%BA%E5%BF%97%E6%84%BF%E8%80%85%E7%BB%B4%E6%8A%A4%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务