AWS-Linux-Docker-Selenium grid Cannot start service chrome: port is already allocated 错误
AWS-Linux-Docker-Selenium grid Cannot start service chrome: port is already allocated error
我正在使用 AWS-Linux-Docker-Selenium 网格配置来进行 运行 selenium 测试。 docker-compose up
运行 没问题,我可以看到 chrome、firefox、opera 的单个容器。
docker-compose up
但是当我尝试使用 docker-compose scale chrome=3
创建容器节点时,出现以下错误。我已经尝试了很多方法,比如更改 Linux 实例,sudo service docker restart
我不会逃避这个。请帮助如何扩展 chrome 个容器。
docker-compose scale chrome=3
Cannot start service chrome: driver failed programming external connectivity on endpoint ec2-user_chrome_3 (f0d153ee59169eaf94501b8dc9e77db4157614afd731cba673f2aed6c054d237): Bind for 0.0.0.0:6900 failed: port is already allocated
docker-compose.yml
# To execute this docker-compose yml file use `docker-compose -f docker-compose-v3.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker-compose -f docker-compose-v3.yml down`
version: "3"
services:
chrome:
image: selenium/node-chrome:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6900:5900"
firefox:
image: selenium/node-firefox:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6901:5900"
opera:
image: selenium/node-opera:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6902:5900"
selenium-hub:
image: selenium/hub:4.0.0-beta-1-prerelease-20210114
container_name: selenium-hub
ports:
- "4442:4442"
- "4443:4443"
- "4444:4444"
发生这种情况是因为您的节点配置为将 VNC 端口暴露给主机的某个端口,当您启动多个节点时,它们都会尝试绑定到该端口。
而不是:
ports:
- "6901:5900"
您需要使用:
ports:
- "5900"
这将使您的 docker 组合将容器端口暴露给主机的随机选择的空闲端口。
我正在使用 AWS-Linux-Docker-Selenium 网格配置来进行 运行 selenium 测试。 docker-compose up
运行 没问题,我可以看到 chrome、firefox、opera 的单个容器。
docker-compose up
但是当我尝试使用 docker-compose scale chrome=3
创建容器节点时,出现以下错误。我已经尝试了很多方法,比如更改 Linux 实例,sudo service docker restart
我不会逃避这个。请帮助如何扩展 chrome 个容器。
docker-compose scale chrome=3
Cannot start service chrome: driver failed programming external connectivity on endpoint ec2-user_chrome_3 (f0d153ee59169eaf94501b8dc9e77db4157614afd731cba673f2aed6c054d237): Bind for 0.0.0.0:6900 failed: port is already allocated
docker-compose.yml
# To execute this docker-compose yml file use `docker-compose -f docker-compose-v3.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker-compose -f docker-compose-v3.yml down`
version: "3"
services:
chrome:
image: selenium/node-chrome:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6900:5900"
firefox:
image: selenium/node-firefox:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6901:5900"
opera:
image: selenium/node-opera:4.0.0-beta-1-prerelease-20210114
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
ports:
- "6902:5900"
selenium-hub:
image: selenium/hub:4.0.0-beta-1-prerelease-20210114
container_name: selenium-hub
ports:
- "4442:4442"
- "4443:4443"
- "4444:4444"
发生这种情况是因为您的节点配置为将 VNC 端口暴露给主机的某个端口,当您启动多个节点时,它们都会尝试绑定到该端口。
而不是:
ports:
- "6901:5900"
您需要使用:
ports:
- "5900"
这将使您的 docker 组合将容器端口暴露给主机的随机选择的空闲端口。