我正在尝试在docker容器中运行vue仪表板,并在本地计算机上运行服务。两者都绑定到“ localhost:80”。在docer中同时运行仪表板和服务时,一切正常,但是在docker中运行仪表板以及在主机上运行第二个服务时,主机会以某种方式覆盖对docker localhost的访问。所以预期的行为: -http://localhost->应该加载仪表板 -http://localhost/graphql->应该从第二个服务加载graphql的api
因此,当它们都在docker中运行时,它们都起作用,但是当其中一个在docker中运行而第二个在hist上运行时,它们不起作用。 任何想法如何解决这个问题?之所以需要在主机上运行第二个服务,是因为我可以更快地进行调试和编码,而不必在每次更改代码并更新堆栈后构建映像。
谢谢,佐利。
答案 0 :(得分:0)
localhost
是指docker容器本身。您不能从docker内部访问实际主机。
但是,您的实际主机在docker网络中具有IP地址。您可以使用该IP访问实际的主机。您可以通过执行ifconfig
来获得它。寻找一个docker
界面。在我的机器中,实际的主机具有IP 172.17.0.1
答案 1 :(得分:0)
问题解决了,在主机上,我不得不更改端口,它开始起作用。因此,当两种服务都在docker中运行时,端口80可以分配给2个容器,并且可以正确解析。但是当一个在docker上运行而另一个在主机上运行时,它将无法工作。这就是我对此的解释,也许有人可以给出更好的解释,但是问题现在已经解决。谢谢。