我正在尝试从一个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应用程序的容器。
有任何关于为什么这不起作用的想法吗?
感谢 @DavidMaze 的评论,我开始尝试使用
localhost
而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port
,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用http//localhost:port
。http://webapp:3000
3000
如有需要,请随意编辑以添加更多有用的信息。