【问题标题】:Problem with ports in docker-compose filedocker-compose 文件中的端口问题
【发布时间】:2019-11-28 11:28:18
【问题描述】:

我正在尝试将我的 api 与我的 webapp 链接,但似乎不起作用。 我有这个错误

[HPM] 尝试代理请求 /users/me 时发生错误 localhost:3000 到 http://localhost:8080 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

当我尝试登录时,它找不到用户。

这是我的 docker-compose.yml 文件的内容

 version: '3'
    services:
      api:
        build: ./web3-2019-api
        ports:
        - "8080:8080"
      webapp:
        build: ./web3-2019-webapp
        ports:
        - "3000:3000"
        links:
        - api

【问题讨论】:

  • 该错误似乎表明失败是由于webapp试图连接到api。我猜测 localhost:3000 工作正常,但是内部尝试访问 api:8080 的参考失败了。查看 Ponnusamy 的回答

标签: docker docker-compose dockerfile


【解决方案1】:

尝试通过 docker host api:8080 而不是 localhost 进行连接。

如果您通过 localhost 从 webapp 连接,它预计 8080 将在 webapp docker 中运行,但 api 是另一个 docker,您应该通过 api:8080 连接。虽然两者都在同一台机器上运行,但它们是虚拟机,您应该通过 docker network 中的相应 docker 名称进行连接

【讨论】:

  • 这是正确的。同时使用网络而不是链接,因为该功能将被弃用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2017-01-03
  • 2020-07-11
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多