Docker 容器无法到达本地主机端口 4444。为什么呢?

2023-12-09

我容器化了一个应用程序,它是自动化 Selenium 测试的测试驱动程序。 Selenium 服务器(也称为 Selenium Hub)在另一个容器以及 Firefox 节点中运行,位于 localhost:4444 下。 但我的应用程序无法到达它:

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '10d3b5fd1010', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-4-amd64', java.version: '1.8.0_11            1'
Driver info: driver.version: RemoteWebDriver
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158)
        at de.services.impl.TestSetupFactory.getWebDriver(TestSetupFactory.java:408)
        at de.services.impl.TestSetupFactory.getSeleniumService(TestSetupFactory.java:279)
        at de.services.impl.AutomationServiceImpl.executeTests(AutomationServiceImpl.java:220)
        at de.start.Start.main(Start.java:25)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:4444 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: C            onnection refused (Connection refused)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)

我通过 docker-compose 启动了这些容器:

version: '2'
services:
  hub:
    image: selgrid:1.1
    ports:
      - "4444:4444"

  firefox:
    #pull latest from docker hub
    image: selenium/node-firefox
    volumes:
      - /dev/urandom:/dev/random
    depends_on:
      - hub
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
  testautomation:
    #run testautomation app
    image: volumetest
    links:
      - "hub"
    ports:
      - "9005:9005"

我猜我的 docker-compose 有一个错误,但我无法弄清楚。请帮忙! 顺便说一句:我在 Windows 7 上运行,并使用 Docker 和 Vagrant VM。在我的 Vagrantfile 中,我将端口 4444 和 9005 映射到主机系统。如果我打开本地浏览器并访问 localhost:4444,我可以看到 selenium 网格控制台。为什么它无法在我的应用程序容器中运行?


在您的应用程序容器中localhost表示当前容器。因此您需要使用服务的名称。你的情况是hub

所以连接到hub:4444

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 容器无法到达本地主机端口 4444。为什么呢? 的相关文章

随机推荐

  • PHP 安装程序脚本 [重复]

    这个问题在这里已经有答案了 可能的重复 我如何为网站创建安装程序 PHP mysql 我正在寻找使用 PHP 为稍微复杂的 Web 应用程序创建一个功能齐全的安装程序 基本上 您访问 URL setup php 系统会询问您一系列问题 在此
  • 如何将 cp1251 字节数组转换为 utf8 字符串?

    我们在手机上没有可用的 cp1251 代码页 因此 new String data cp1251 doesn t work 我们需要一个具有类似签名的函数 String ArrayCp1251toUTF8String byte data 首
  • JavaScript:我应该如何生成大量 HTML? [复制]

    这个问题在这里已经有答案了 可能的重复 是否有使用 javascript 生成 html 的最佳实践 我想用 JavaScript 生成网站的大部分内容 最简单的方法是形成一个包含所有 HTML 的大字符串 div span some te
  • MySQL - 如何限制每个 ID 一个结果?

    我有以下查询 它创建一个视图表 显示商店中最高的销售人员以及其他一些详细信息 CREATE OR REPLACE VIEW sales data AS SELECT s storename AS Store e employee name
  • event.preventDefault() 在 Chrome 和 Opera 中不起作用

    我正在使用 jQuery 验证插件 1 9 0 和 jQuery 1 7 2 我希望使用 jquery 验证插件来验证我的表单 它在 Firefox 20 0 1 和 IE 10 中运行良好 但在 Chrome 26 0 1410 64 m
  • 如何使用代号一存储?

    我正在尝试将我的 LWUIT 应用程序移植到代号一 我已经在 LWUIT 中使用了 RMS 现在显然我必须将其转换为存储 我不明白存储类在代号一中是如何工作的 代号一的文档也没有任何相关内容 1 存储文件的结构是怎样的 gt 在 J2ME
  • 选择“今天日期”的查询不起作用

    我试图从表文档中选择日期是今天的日期 我正在使用 Codeigniter 但它只显示这些没有时间的文档 我的意思是数据库日期中的位置是 2015 06 25 00 00 00 但它不会显示有小时的这些文档 例如 2015 06 25 08
  • IBM Worklight Android 4.4 问题,JSON Store 停止工作

    我刚刚将 N4 升级到 Kitkat 并测试了一些使用 IBM Worklight 开发的旧应用程序 让我震惊的是JSON 存储停止工作 我正在提交以下日志 请检查 还有其他人面临同样的问题吗 11 27 11 48 03 078 I js
  • 为索引列表生成 CREATE 脚本

    作为排序规则更改练习的一部分 我有一个索引列表 122 需要删除然后重新创建 如何重新创建这些索引 而不必每次都通过 GUI 并将其编写脚本到查询窗口 我的索引列表是从此脚本获取的 WITH indexCTE AS SELECT Table
  • Elasticsearch:小时分钟秒映射返回空数据

    下面是我为搜索字段创建的映射 PUT sample mapping properties webDateTime1 type date format dd MM yyyy HH mm ss dd MM yyyy hour minute se
  • 将数据放入 gridview 的第二行

    我正在使用 foreach 循环将数据插入到 gridview 中 如下所示 foreach GridViewRow row in grvbillDetail Rows row text row text row int row int 我
  • Travis 与 Firebase 部署 TypeError:this.stream.clearLine 不是函数

    我正在尝试使用 Travis 构建和部署 NodeJs Python 应用程序 这大约是文件夹结构 所有内容都属于同一个存储库 main angular2 client dist node modules django server ser
  • 如何在Python中调用超级构造函数?

    class A def init self print world class B A def init self print hello B output hello 在我使用过的所有其他语言中 超级构造函数都是隐式调用的 如何在 Pyt
  • 上传前获取文件大小、图片宽度和高度

    在上传到我的网站之前 如何使用 jQuery 或 JavaScript 获取文件大小 图像高度和宽度 多张图片上传并带有信息数据预览 Using HTML5 和File API 使用示例URL API 图像源将是表示 Blob 对象的 UR
  • 正则表达式 - 识别分数

    我需要使用正则表达式从菜谱数据库中的表单字段中识别分数 成分将被输入到由两部分组成的表单字段中 第一字段是数量 第二字段是成分 然后 我需要将字段一分解为其小数部分以输入到数据库中 可能的条目包括 1 1 2 1 1 2 以及前面任何一个带
  • 在120个字符后附加readmore标签,并使其在ios中可点击

    数据来自解析器 如果文本超过 120 个字符 那么它应该像 Facebook 一样附加 ReadMore 我已经获得了附加文本的代码 但不知道如何制作可点击的链接 我正在使用 Swift Languge if cell bhikmangaT
  • 如何在 Angular JS Web 应用程序中使用 ckeditor?

    我很难使用ckeditor在我内置的 html 页面中angularjs 我已经尝试了很多例子 ng ckeditor directive ckeditor directive 但这些例子都没有帮助我 我想要一个文本区域 我可以在其中输入图
  • 在 Typescript 类中声明常量

    在 TypeScript 中声明常量的最佳方式是什么class 你不能声明一个常量 你可以声明一个readonly场 它比您期望的常数弱 但可能足够好 class MyClass static readonly staticReadOnly
  • Mac OS X >= 10.6 上的 Finder 文件图标徽章(图标覆盖)

    我正在寻找一种解决方案 可以在 Mac 上使用 cocoa 进行文件图标叠加 图标徽章 就像 Dropbox 在 mac 上所做的那样 有谁知道如何做到这一点 我搜索了 Xcode 文档并研究了scp插件源代码是一种旧的碳代码 有点晚了 但
  • Docker 容器无法到达本地主机端口 4444。为什么呢?

    我容器化了一个应用程序 它是自动化 Selenium 测试的测试驱动程序 Selenium 服务器 也称为 Selenium Hub 在另一个容器以及 Firefox 节点中运行 位于 localhost 4444 下 但我的应用程序无法到