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

时间:2019-01-24 10:39:59

标签: node.js docker publish

我在节点服务器和server.js中运行了角度应用程序,我已经指定了app.listen(8084,localhost)。因此,当我在docker容器中运行npm start并尝试在docker run中运行-p 8084:8084时,即使我的容器curl localhost:8084中的curl命令给了我正确的结果,也什么也没得到。 因此,我更改了app.listen(8084),然后-p 8084:8084开始工作。我不确定为什么吗?

2 个答案:

答案 0 :(得分:2)

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

0.0.0.0-所有界面,您可以从任何界面访问服务

locahost127.0.0.1-本地绑定。这意味着无法从oustide获得服务-这就是您的情况。

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

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

答案 1 :(得分:0)

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