docker-selenium

一行命令拉起多浏览器 Selenium Grid,测试并行跑不停

docker-selenium 提供了一套开箱即用的容器镜像与编排方案,让 Selenium Grid 能基于 Docker、Kubernetes 或 Helm 快速部署 Chrome、Firefox、Edge 等浏览器节点,解决传统自建 Selenium 集群环境配置繁琐、节点扩缩容困难、浏览器版本管理混乱的问题。核心能力包括:官方维护的多浏览器镜像,支持独立模式与 Hub-Node 分布式网格;提供 Helm Chart 和 Kubernetes 部署清单,可结合 KEDA 按队列负载自动扩缩容;支持视频录制、VNC 实时查看、动态节点注册与节点 drain,方便调试和灰度升级。项目用 Go 编写辅助工具,镜像发布到 Docker Hub 与 GitHub Container Registry,适合 CI/CD 中大规模并行执行端到端测试。

开源 free 自动化工作流
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 8654
维护状态 活跃
是否开源
定价模式 free

项目数据

分类自动化工作流
开发团队SeleniumHQ
所属国家
定价模式free
价格说明开源免费,Apache 2.0 许可证
访问状态
是否开源
开源协议NOASSERTION
主要语言Go
技术栈/模型containerization,devops,distributed-systems,docker,docker-selenium-grid,helm-chart,keda,kubernetes,kubernetes-selenium-grid,selenium,selenium-grid,selenium-grid-4,selenium-grid-setup,selenium-server,tools-and-automation,webdriver
GitHub 星标★ 8654
30天Star增速
HF 下载量
上线时间2014-11-17 00:00:00
最近更新2026-09-17 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-18
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:Docker 7 步

环境要求

  • 已安装并启动 Docker(镜像发布在 Docker Hub 的 selenium 命名空间下)
  • 如需编排多节点,需安装 Docker Compose
  • Docker 有足够磁盘拉取浏览器镜像,且浏览器镜像需使用共享内存参数
  • 在 Apple Silicon / ARM 机器上注意,compose 示例中部分浏览器镜像指定了 platform: linux/amd64

安装与启动步骤

  1. 1准备 Docker 环境

    README 的安装说明全部基于 Docker,请先在本机安装并启动 Docker;浏览器镜像对共享内存有要求,需要在运行时通过参数放开。

  2. 2启动独立模式容器

    最快的方式:用 standalone 镜像同时跑 Hub 和 Firefox 节点,README 快速开始即用此命令;请注意必须带 --shm-size=2g。

    docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.48.0-20260905
  3. 3创建 Docker 网络

    做 Hub-Node 分布式网格时,Hub 与 Node 必须处在同一网络,README 要求第一步先创建名为 grid 的网络。

    docker network create grid
  4. 4启动 Hub 容器

    启动 selenium/hub 并映射 4442-4444 端口,容器名固定为 selenium-hub,便于节点按容器名互相识别。

    docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.48.0-20260905
  5. 5启动浏览器节点

    在 grid 网络内启动 Chrome 节点,用 SE_EVENT_BUS_HOST 指向 Hub 容器名;Edge、Firefox 节点只需替换镜像名。

    docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub 
        --shm-size="2g" 
        selenium/node-chrome:4.48.0-20260905
  6. 6或用 Compose 起网格

    把仓库里的 compose 文件保存到本地,在文件所在目录执行启动;该文件会一并拉起 Hub 与 Chrome、Edge、Firefox 等节点。

    docker compose -f docker-compose-v3-beta-channel.yml up
  7. 7查看容器画面与停止

    调试时可访问 7900 端口的 VNC 页面实时观察容器内浏览器;结束时用 compose down 停止并清理容器。

    docker compose -f docker-compose-v3-beta-channel.yml down

关键配置

配置项必填说明示例
SE_EVENT_BUS_HOST节点通过它找到 Hub,值填 Hub 容器名,节点与 Hub 需同网络selenium-hub
--shm-size / shm_size浏览器共享内存大小,README 要求浏览器镜像使用 2g2g
端口 4442-4444Hub 端口映射,WebDriver 测试使用 44444442-4444:4442-4444
镜像 tag用完整 tag 固定浏览器与 Grid 版本,避免版本漂移4.48.0-20260905
VNC 密码访问 7900 端口看容器画面时的密码参数secret

如何确认成功

把 WebDriver 测试指向 http://localhost:4444;浏览器打开 http://localhost:7900/?autoconnect=1&resize=scale&password=secret 能看到容器内画面,

常见问题

Q:为什么运行浏览器镜像必须加 --shm-size=2g?

A:README 明确提示:执行包含浏览器的镜像时要用 --shm-size=2g 使用宿主机共享内存,否则共享内存过小容易导致浏览器崩溃;单容器装全部浏览器时示例用 3g。

Q:为什么建议用完整 tag 而不是 latest?

A:README 强调始终使用带完整 tag 的镜像来固定具体的浏览器和 Grid 版本,便于复现与升级,避免 latest 变动带来的不兼容。

Q:Hub 和 Node 是怎么互相发现的?

A:它们位于同一个 Docker 网络(示例为 grid)中,靠容器名互相识别;节点通过环境变量 SE_EVENT_BUS_HOST=selenium-hub 连接到 Hub。

Q:怎么停止并清理这套网格?

A:Compose 方式启动的用 docker compose down 停止并清理容器;手工 docker run 启动的容器退出后,README 提到可以删除先前创建的网络。

注意事项

  • 浏览器镜像运行务必带 --shm-size,单浏览器节点用 2g,全浏览器节点示例用 3g。
  • 镜像不要用 latest,用完整 tag 固定浏览器和 Grid 版本。
  • compose 示例里 Edge、chrome-for-testing 等镜像标注了 platform: linux/amd64,非 amd64 机器需留意。
  • 除 Docker 外,README 还提供 Helm Chart,可在 Kubernetes 中创建 Selenium Grid。

核心亮点

  • 官方镜像覆盖 Chrome、Firefox、Edge 及对应 Debug 版本,浏览器与驱动版本匹配由项目维护,省去手动对齐成本
  • 提供 Helm Chart 与 KEDA 集成,Kubernetes 下可按会话队列自动扩缩容,显著降低空闲资源开销
  • 支持 VNC 实时观察、视频录制和节点动态注册/drain,调试与滚动升级体验完整

不足之处

  • 镜像体积较大,冷启动拉取耗时明显,在弹性扩缩容场景下会拖慢节点就绪速度
  • 大规模高并发下的稳定性与性能调优文档偏少,更多依赖社区 issue 与经验摸索

适用场景

  • CI/CD 流水线中并行执行跨浏览器端到端测试
  • Kubernetes 集群内按测试负载弹性伸缩的 Selenium Grid
  • 需要录制测试视频或 VNC 远程排查失败用例的自动化团队

替代项目

SeleniumHQ/selenium、zalenium、Moon

项目介绍

docker-selenium 是自动化工作流领域的开源项目,由 SeleniumHQ 开发,2014 年首次发布。

在全站 12,753 个收录项目中,它的 GitHub 星标数(8,654)位列前 6%,在自动化工作流分类的 487 个项目里位列前 11%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-17。开源免费,Apache 2.0 许可证。

它主要面向的使用场景是:CI/CD流水线中并行执行跨浏览器端到端测试。同类可对比的替代方案包括 SeleniumHQ/selenium、zalenium、Moon。

上一篇:SeleniumBase

下一篇:awesome-browser-automation

同类项目推荐

n8n 开源

拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。

Fair-code workflow automation platform with native AI capabilities. Combine visual b···

★ 205363 2026-08-10
robotcode 开源

让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。

Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···

★ 299 2026-08-10
puppeteer 开源

用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。

JavaScript API for Chrome and Firefox

★ 95591 2026-08-10
customermates 开源

比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。

Building a modern alternative to Pipedrive that is 10x more intuitive.

★ 227 2026-08-10