Selenium Grid in Node mode with all popular browsers (Chrome, Edge, Firefox)
10K+
Where selenium/node-chrome, selenium/node-edge and selenium/node-firefox each serve one browser, this image registers stereotypes for all of them at once. A session request matching browserName=chrome, MicrosoftEdge or firefox is served by the same container.
Available from image tag 4.35.0 onwards. It suits you if you:
Browser availability differs per architecture:
| Browser / Arch | x86_64 (aka amd64) | aarch64 (aka arm64/armv8) |
|---|---|---|
| Chrome | ✅ | ✅ |
| Edge | ✅ | ❌ |
| Firefox | ✅ | ✅ |
| Chromium | ✅ | ✅ |
Both the Chrome and the Chromium binary are present on linux/amd64, with Chrome activated by default. To switch to Chromium, set SE_BROWSER_BINARY_LOCATION_CHROME=/usr/bin/chromium.
The Hub and Nodes will be created in the same network and they will recognize each other by their container name. A Docker network needs to be created as a first step.
docker network create grid
docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.48.0-20260905
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
--shm-size="3g" \
selenium/node-all-browsers:4.48.0-20260905
If you are using Windows Powershell, use this command:
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `
--shm-size="3g" `
selenium/node-all-browsers:4.48.0-20260905
Point your WebDriver tests to http://localhost:4444
That's it!
(Optional) To see what is happening inside the container, head to http://localhost:7900/?autoconnect=1&resize=scale&password=secret.
When executing docker run for an image that contains a browser please use the flag --shm-size to use the host's shared memory. Because this Node can run any of three browsers, --shm-size=3g is the recommended starting point.
The example above pins a full tag. Pinning a specific Grid version is the recommended way to run these images. Please see Tagging Conventions for details.
A more detailed explanation that shows how to run the Nodes in different configurations can be seen at the Docker-Selenium project in GitHub
When you are done using the Grid, and the containers have exited, the network can be removed with the following command:
docker network rm grid
Set SE_NODE_ENABLE_BROWSER_<BROWSER>=false to stop a browser from being registered, with <BROWSER> in uppercase — CHROME, EDGE or FIREFOX. For example, to run this Node without Firefox:
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
--shm-size="3g" \
-e SE_NODE_ENABLE_BROWSER_FIREFOX=false \
selenium/node-all-browsers:4.48.0-20260905
The following environment variables accept the same _<BROWSER> suffix, so each browser can be configured independently within the one container:
SE_NODE_STEREOTYPE
SE_NODE_BROWSER_NAME
SE_NODE_BROWSER_VERSION
SE_NODE_PLATFORM_NAME
SE_BROWSER_BINARY_LOCATION
SE_NODE_STEREOTYPE_EXTRA
SE_NODE_MAX_SESSIONS
The full list of environment variables is documented in ENV_VARIABLES.md.
This image is tagged with the Selenium Grid version only — there is no per-browser tag, since it carries several browsers at once.
selenium/node-all-browsers-<Major>.<Minor>.<Patch>-<YYYYMMDD>
Selenium Server 4.48.0
Release date 20260909
e126989f151e selenium/node-all-browsers 4
e126989f151e selenium/node-all-browsers 4.48
e126989f151e selenium/node-all-browsers 4.48.0
e126989f151e selenium/node-all-browsers 4.48.0-20260909
With that, you can use any of the different tags to get the most recent release in a simplified way.
The Docker-Selenium project in GitHub has an extensive README that will help you find the correct way to get this images up and running for your use case.
The project is made possible by volunteer contributors who have put in thousands of hours of their own time, and made the source code freely available under the Apache License 2.0.
Content type
Image
Digest
sha256:cd8323af3…
Size
1.6 GB
Last updated
11 days ago
docker pull selenium/node-all-browsersPulls:
429
Last week