Docker 容器之间的 HTTP 请求

2024-01-09

我正处于学习如何使用 Docker 的第一阶段,所以我正在尝试一些基本的东西。我创建了两个需要通过 HTTP 请求交换数据的 Node Express 服务。

My docker-compose.yml file

networks:
  isolation-network:
    driver: bridge

services:
  service1-nodejs:
    build:
    context: ./service1/
    dockerfile: .docker/node.dockerfile
    ports:
      - "10000:9000" 
      - "10001:5858" 
    env_file: ./service1/.docker/env/app.${APP_ENV}.env
    networks:
      - isolation-network

  service2-nodejs:
    build:
    context: ./service2/
    dockerfile: .docker/node.dockerfile
    ports:
      - "10010:9000" 
      - "10011:5858" 
    env_file: ./service2/.docker/env/app.${APP_ENV}.env
    networks:
      - isolation-network

service1使用请求模块 https://github.com/request/request发出 POST 请求service 2.

request({ url: "http://service2:10010/api/",
                method: "POST",
                headers: { "Content-Type": "application/json" },
                json: true,
                body: { ... },
                time: true
            }, function (err, res, body) {
                if (!err && res.statusCode == 200) {
                    // success
                }

                // failed
            });

这次调用的结果是:

{ 错误:连接 ECONNREFUSED 172.18.0.3:10010}

使用邮递员我可以测试service2 at http://localhost:10010/api/我可以确认他们确实可以联系到并按预期工作。

我错过了一些东西,但无法弄清楚。这里出了什么问题?


查看文档 https://docs.docker.com/compose/compose-file/#ports。 10010端口是主机端口,不是容器端口。访问时应使用 9000service2直接容器。

所以只要改变"http://service2:10010/api/" to "http://service2:9000/api/"它会起作用的。

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

Docker 容器之间的 HTTP 请求 的相关文章

随机推荐

  • Ruby Regex - 需要替换正则表达式匹配中出现的每个字符

    这是我的字符串 mystring Q object1 this is a testyay asdkf asfkd object2 yo ho ho 我要分开mystring在逗号上 因此我想 暂时 去掉转义引号之间的逗号 因此 我需要匹配转
  • C++:宏参数中可以有空格吗?

    如果我定义一个带有参数的宏 如下所示 define define int a int a 并提供一个参数 中间有空格 如下所示 define int a 并得到输出 int a 有可能的使用 define ASSIGN A B B A 我想
  • Grafana日志插件不显示日志面板

    我正在尝试创建一个支持日志面板的 Grafana 插件 我正在关注来自他们网站的路线 https grafana com docs grafana latest developers plugins build a logs data so
  • 突出显示 FlowDocument 中的部分文本

    我想突出显示文本中的某些部分FlowDocument根据搜索结果 我正在做的是获取搜索词在文本中出现的索引FlowDocument然后在从找到的索引开始到找到的索引 搜索词长度结束的文本范围上应用背景颜色 TextRange content
  • 将鼠标悬停在另一个元素上时更改一个元素的类 d3

    我有一个图像列表和图像标题列表 我希望当我将鼠标悬停在相应的图像上时能够显示标题的悬停状态 更改 css 但我不知道如何连接这两个数据 我的代码如下 我有它 这样当您单击顶部数字时 信息就会显示在下面
  • 将焦点设置在 Windows 中的控制台上?

    是否可以将焦点设置在 Windows 中的控制台应用程序上 SetFocus http msdn microsoft com en us library ms646312 VS 85 aspx看起来很有希望 但它需要一个 HWND 而且我不
  • VARCHAR2 列上的 ResultSet.getString() 返回空字符串

    免责声明 我实际上对 Oracle 和 Java 都一无所知 问题出在其他一些开发人员在某个时间点完成然后离开公司的项目中 现在我必须设置网络服务器 数据库并使其全部启动并运行 代码大约是这样的 OracleDataSource ods n
  • 扩展基元而不对其进行原型设计

    我正在开发一个相当丑陋的库 它可以让你做一些奇怪的事情 有了图表 您可以以链式样式映射一组集合 并且当您更改 整个系统中要改变的值 当最终类型是 JS 原语时 问题就出现了 就我而言 在使用值和对象制作图表后 我可以执行以下操作 CHAIN
  • 动态添加项目到边框视口

    我想首先创建一个空视口 布局 边框 然后向其中添加项目 最后渲染并显示 但是当我创建视口元素时 它抛出一个错误 说 未捕获的类型错误 无法读取未定义的属性 flex 这是我的代码
  • 通过adb授予PACKAGE_USAGE_STATS权限

    adb shell pm grant x y z android permission PACKAGE USAGE STATS 这是授予的命令PACKAGE USAGE STATS通过 adb 获得权限 但只有当我从未在本机设置中切换此权限
  • 如何使用react-router-dom创建受保护的路由?

    如何创建受保护的路由react router dom并将响应存储在 localStorage 中 以便用户下次尝试打开时可以再次查看其详细信息 登录后 他们应该重定向到仪表板页面 所有功能都添加到 ContextApi 中 代码沙箱链接 C
  • webpack "--watch" 与 "--hot" :有什么区别?

    使用有什么区别 webpack watch and webpack dev server hot thanks 根据 webpack 文档 https webpack github io docs tutorials getting sta
  • 仅 Vault Enterprise 的 Vault Sidecar 注入器权限被拒绝

    我正在尝试探索Vault Enterprise 但当我使用Vault Enterprise时 Sidecar的权限被拒绝 但当我尝试使用本地Vault服务器时 似乎工作正常 这是包含本地保管库的工作示例的存储库保险库边车注射器应用程序 ht
  • 使用 python 3 代码在 CSV 文件中查找特定标头

    现在我有Python 3代码 它获取CSV文件中的一列数据 根据空格将每个单元格中的短语分隔成单独的单词 然后将数据导出回新的CSV文件中 我想知道是否有一种方法可以告诉 python 仅将格式化代码应用于具有特定标题的特定列 这是我的源数
  • 如何在C#中获取Table的innerHTML

    HtmlTable baseCalendar new HtmlTable HtmlTableRow calendarRow new HtmlTableRow HtmlTableCell calendarCell new HtmlTableC
  • 根据几个条件计算总计

    假设我有一个这样的表 id col1 col2 col3 1 a 1 k1 2 a 2 k2 3 a 3 k3 4 b 3 k4 现在 我想要所有行的列 col2 的总和 其中 col1 与 id 1 的行中的 col1 相同 所以那就是1
  • 如何在 Django 模板中访问外键表的数据?

    我想将外键表的数据访问到 django 模板中 我的代码如下 class TutorialCategory models Model tutorial category models CharField max length 200 cat
  • Visual Studio Community 2019 在为 MATLAB MEX 文件的性能分析器“准备数据”期间挂起

    我正在尝试使用 Visual Studio Community Edition 2019 分析 MEX mexw64 文件 该 MEX 文件是根据我们编写的 C 文件创建的 并使用 GCC 和 G 进行编译 并启用了调试符号 如果重要的话
  • 如何在 if 语句中回显 PHP 和 HTML

    我有一个 if 语句 只需在 result37 ncrteam 的值时显示一些代码 但是我如何回显该 HTML 和 PHP 代码 回声 不工作并回显 也不行 这是我的代码 Status br
  • Docker 容器之间的 HTTP 请求

    我正处于学习如何使用 Docker 的第一阶段 所以我正在尝试一些基本的东西 我创建了两个需要通过 HTTP 请求交换数据的 Node Express 服务 My docker compose yml file networks isola