跨Docker容器的API调用
P粉764003519
P粉764003519 2023-08-29 19:43:11
0
1
407

我正在尝试从一个docker容器(假设是container_A)中使用提供的API,来访问另一个容器(container_B)。这两个容器在同一个Docker网络中。在添加Docker之前,我当然会对http://localhost:{app_port}/{endpoint}进行API调用,现在我已经将应用程序Docker化,每个服务都在一个Docker容器中运行,我通过阅读其他问题和网站得知,如果它们在同一个网络中,你必须使用容器的别名,或者如果使用了docker compose,则使用服务名称,例如http://container_A:8000/books。我已经这样做了,但是不起作用。我在所有服务中配置了CORS,并且还尝试从REST客户端(这是一个类似Postman的VSCode扩展)中访问端点,以查看是否起作用,它确实起作用。我也做了端口映射/端口暴露。

只是为了提供更多的背景信息,我想从一个包含Node.js应用程序的Docker容器中使用API,来访问另一个包含React应用程序的容器。

有任何关于为什么这不起作用的想法吗?

P粉764003519
P粉764003519

全部回复 (1)
P粉956441054

感谢 @DavidMaze 的评论,我开始尝试使用localhost而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用http//localhost:port

  • containerName是您应用程序的容器名称。例如:http://webapp:3000
  • port是暴露的端口。例如:3000

如有需要,请随意编辑以添加更多有用的信息。

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!