主机“ localhost”会在docker

时间:2019-04-05 08:11:55

标签: node.js docker nginx vue.js

我正在尝试在docker容器中运行vue仪表板,并在本地计算机上运行服务。两者都绑定到“ localhost:80”。在docer中同时运行仪表板和服务时,一切正常,但是在docker中运行仪表板以及在主机上运行第二个服务时,主机会以某种方式覆盖对docker localhost的访问。所以预期的行为: -http://localhost->应该加载仪表板 -http://localhost/graphql->应该从第二个服务加载graphql的api

因此,当它们都在docker中运行时,它们都起作用,但是当其中一个在docker中运行而第二个在hist上运行时,它们不起作用。 任何想法如何解决这个问题?之所以需要在主机上运行第二个服务,是因为我可以更快地进行调试和编码,而不必在每次更改代码并更新堆栈后构建映像。

谢谢,佐利。

2 个答案:

答案 0 :(得分:0)

docker内部的

localhost是指docker容器本身。您不能从docker内部访问实际主机。

但是,您的实际主机在docker网络中具有IP地址。您可以使用该IP访问实际的主机。您可以通过执行ifconfig来获得它。寻找一个docker界面。在我的机器中,实际的主机具有IP 172.17.0.1

答案 1 :(得分:0)

问题解决了,在主机上,我不得不更改端口,它开始起作用。因此,当两种服务都在docker中运行时,端口80可以分配给2个容器,并且可以正确解析。但是当一个在docker上运行而另一个在主机上运行时,它将无法工作。这就是我对此的解释,也许有人可以给出更好的解释,但是问题现在已经解决。谢谢。