You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RSelenium调用Docker出现status 125错误及连接拒绝问题求助

解决RSelenium连接Docker Selenium容器时的Connection Refused错误(Status 125)

我之前在Win10环境下用Docker搭Selenium也踩过类似的坑,结合你的情况(Win10家庭版+默认Oracle VM+RSelenium),咱们一步步排查解决:

一、先确认Docker容器是否真的启动成功

Status 125通常意味着容器启动失败,先别着急连RSelenium,先检查容器状态:

  • 打开终端运行:docker ps -a
  • 如果看到容器的STATUS列是Exited (125),那肯定是启动环节出问题了,先看日志找原因:docker logs <你的容器ID>
    大概率是Oracle VM默认分配的内存不够(一般只有1G),Selenium+Firefox需要至少2G内存才能正常跑。

二、调整Oracle虚拟机资源

这是最常见的解决点:

  1. 打开Oracle VM VirtualBox,找到你的Docker虚拟机(一般叫default或者你自己命名的)
  2. 右键选择「设置」→「系统」→「主板」
  3. 把内存滑块调到2048MB(2G)以上,点击「确定」后重启虚拟机

三、确认IP地址和端口映射是否正确

你报错里的192.168.99.100是Docker Toolbox的默认IP,但如果是自己用Oracle VM装的Docker,IP可能已经变了:

  1. 进入Oracle虚拟机的终端,运行ip addr(Linux系统),找到eth0/enp0s3对应的IP地址(比如可能是192.168.56.101之类的)
  2. 先清理旧容器:docker stop <容器ID> && docker rm <容器ID>
  3. 重新启动容器:docker run -d -p 4445:4444 selenium/standalone-firefox
  4. 验证端口映射:docker inspect <新容器ID>,找到Ports部分,确认4444/tcp已经映射到0.0.0.0:4445

四、调整RSelenium连接代码

别着急马上调用open(),给Selenium服务留点启动时间,同时用正确的IP:

library(RSelenium)
# 把下面的IP换成你刚才查到的虚拟机实际IP
remDr <- remoteDriver(remoteServerAddr = "192.168.xxx.xxx", port = 4445, browserName = "firefox")
Sys.sleep(30) # 等待30秒让Selenium服务完全初始化
remDr$open()

五、检查Windows防火墙

Win10的防火墙可能会阻止虚拟机和主机之间的端口连接:

  1. 打开「Windows Defender防火墙」→「高级设置」
  2. 新建「入站规则」,允许TCP协议的4445端口通过,应用到所有网络类型

如果以上步骤都试过还是不行,可以试试用带Debug的镜像selenium/standalone-firefox-debug,然后用VNC工具连接虚拟机的5900端口,看看Firefox是不是能正常启动,不过这个对新手来说稍微复杂点,先把前面的步骤走完再说。

内容的提问来源于stack exchange,提问作者curly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:06:33