在Docker容器之间进行API调用

lokaqttq  于 2023-04-20  发布在  Docker
关注(0)|答案(1)|浏览(213)

我正在尝试使用一个docker容器提供的API(假设是container_A)来自不同的容器(container_B)。这两个容器在同一个Docker网络中。在添加Docker之前,我当然会对http://localhost:{app_port}/{endpoint}进行API调用,现在我已经将应用程序Dockerized并且每个服务都在Docker容器中运行,我通读了其他问题和网站,你必须使用容器的别名(如果它们在同一网络上),或者如果使用的是docker compose,请改用服务名称,一个例子是http://container_A:8000/books。我已经这样做了,但它不起作用。我已经在所有服务中配置了CORS,并且我还尝试从 *REST客户端 * 到达端点(这是一个VSCode扩展,工作方式类似Postman),看看它是否工作,它确实工作了。我也做了端口Map/端口暴露。
为了给予更多的上下文,我想从Docker容器中的Node.js应用程序中使用API,而另一个容器中有一个React应用程序。
你知道为什么这行不通吗?

v9tzhpje

v9tzhpje1#

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

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

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

相关问题