Node.js 暴露在docker上运行的节点服务器不会';行不通

Node.js 暴露在docker上运行的节点服务器不会';行不通,node.js,docker,publish,Node.js,Docker,Publish,我在node server上运行angular应用程序,在server.js中指定了app.listen(8084,localhost)。因此,当我在docker容器中运行npm start并尝试在docker run中运行-p 8084:8084时,我无法获得任何信息,即使容器中的curl命令curl localhost:8084给了我正确的结果。 因此,我更改了应用程序。listen(8084)和-p8084:8084开始工作。我不知道为什么?打开套接字时,需要将其绑定到系统中的某个接口。有

我在node server上运行angular应用程序,在server.js中指定了
app.listen(8084,localhost)
。因此,当我在docker容器中运行npm start并尝试在docker run中运行
-p 8084:8084
时,我无法获得任何信息,即使容器中的curl命令
curl localhost:8084
给了我正确的结果。
因此,我更改了
应用程序。listen(8084)
-p8084:8084
开始工作。我不知道为什么?

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

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

locahost
127.0.0.1
-本地绑定。这意味着oustide无法提供服务——这是您的情况

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


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

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

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

locahost
127.0.0.1
-本地绑定。这意味着oustide无法提供服务——这是您的情况

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


当您启动容器时,默认情况下docker start
默认网桥网络
,因此您的容器将被放入单独的网络中,要访问它,您需要允许在容器中进行传入的远程连接。

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

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