Docker:单个容器内有多个服务,如何访问本地主机?



我已经在具有 -buster (Debian( 镜像库的单个容器中设置了一个 Flask 后端和 React 前端,并使用 Supervisord 运行这两个后端(我知道这不是好的做法,但它是我的用例所必需的(。我的 React 前端组件如何访问 Flask 后端端点?有没有办法让我检查 Debian 操作系统中"活跃"的端口?

我的前端使用端口 3000,在 Docker 运行命令期间向我的机器公开该端口:

docker run -it --rm -p 3000:3000 test_app

我的后端使用端口 5000,我不想向我的机器公开端口,因此我没有使用-p 5000:5000公开它

如何让我的反应前端访问 Docker 容器中的 Flask 后端端点?可能是受监督的配置吗?

如果您的意思是您在 3000 端口上运行一个 Web 服务器,而另一个后端服务器在同一 contaner 中运行,并且您想从 Web 服务器访问后端,那么您可以使用localhost接口。


如果您想从完全运行用户浏览器的客户端的 react 应用程序连接到后端,那么您无法在localhost处访问后端。您需要发布后端端口并通过该端口进行连接。


相反,您可以做的是让像nginx这样的反向代理网关同时为您的前端和后端API提供服务。 https://microservices.io/patterns/apigateway.html

最新更新