在GitHub Actions中使用Docker host网络时出现连接拒绝问题
GitHub Actions中Docker Host网络的使用问题
结论:GitHub Actions 托管的 runner 环境不支持 Docker 的 --network=host 模式
原因在于GitHub Actions的runner是隔离的托管环境,Docker容器默认运行在独立的网络命名空间中,host网络模式无法将容器端口直接映射到runner的主机网络栈。即使你指定了该参数,容器内的服务也无法通过runner的localhost地址被访问,这就是你遇到"connection refused"错误的根本原因。
可行的解决方案
改用Docker默认的bridge网络模式,手动映射端口:
docker run --rm --cap-add=SYS_ADMIN -p 4444:4444 selenoid/vnc:chrome_117.0
这样配置后,容器内的4444端口会映射到runner的4444端口,你可以正常通过http://localhost:4444访问服务。
额外建议:启动容器后添加等待逻辑,确保服务完全启动再发起请求,避免因服务未就绪导致的连接问题:
until curl -s http://localhost:4444 > /dev/null; do sleep 1; done
内容的提问来源于stack exchange,提问作者Boni García
相关产品推荐
相关产品推荐

