docker部署selenium chrome nodes
dockerhub: https://hub.docker.com/r/selenium/node-chrome
github: https://github.com/SeleniumHQ/docker-selenium
单节点
docker run --rm -d \
-p 4544:4444 \
-p 4564:7900 \
-e SE_VNC_NO_PASSWORD=true \
-e SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true \
-e SE_BROWSER_LEFTOVERS_INTERVAL_SECS=10 \
-e SE_BROWSER_LEFTOVERS_PROCESSES_SECS=30 \
-e SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=1 \
--shm-size 2g \
selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.28.1-20250123
nodes
# 指定 Docker Compose 文件的版本
version: "3"
# 定义服务
services:
# 定义 Selenium Hub 服务
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- "4442:4442" # 事件总线发布端口
- "4443:4443" # 事件总线订阅端口
- "4444:4444" # Selenium Grid 主端口
networks:
- selenium-grid
# 定义第一个 Chrome 节点服务
chrome-node-1:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4461:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第二个 Chrome 节点服务
chrome-node-2:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4462:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第三个 Chrome 节点服务
chrome-node-3:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4463:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第四个 Chrome 节点服务
chrome-node-4:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4464:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第五个 Chrome 节点服务
chrome-node-5:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4465:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第六个 Chrome 节点服务
chrome-node-6:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4466:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第七个 Chrome 节点服务
chrome-node-7:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4467:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义第八个 Chrome 节点服务
chrome-node-8:
image: selenium/node-chrome:117.0-20250123
shm_size: 2g
ports:
- "4468:7900" # 映射 noVNC 端口
environment:
- SE_VNC_NO_PASSWORD=true
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_NODE_SESSION_TIMEOUT=1800
networks:
- selenium-grid
depends_on:
- selenium-hub
# 定义网络
networks:
selenium-grid:
driver: bridge
License:
CC BY 4.0