暴露节点 在 docker 上运行的服务器不起作用



我在节点服务器和服务器中运行一个角度应用程序.js我已经指定了app.listen(8084,localhost)..因此,当我在 docker 容器中运行 npm start 并尝试在 docker 运行中-p 8084:8084时,我无法获得任何东西,即使我的容器curl localhost:8084内的 curl 命令给了我正确的结果。所以我改变了app.listen(8084)-p 8084:8084开始工作。我不知道为什么?

当你打开套接字时,你需要把它绑定到你系统中的某个接口。有预定义的值:

0.0.0.0 - 所有接口,您的服务将从任何接口获得

locahost127.0.0.1 - 本地绑定。这意味着oustide无法提供服务 - 这是您的情况。

您还可以指定要绑定到它的特定接口 IP 地址。

当您启动容器时,默认情况下 docker 启动default bridge network ,因此您的容器被放入单独的网络并访问它,您需要允许容器中的传入远程连接。

将服务绑定到 localhost 到容器中,因此无法在容器外部进行通信。 节点服务器的本地主机与容器的本地主机不同。

最新更新