我正在与领事学习Docker-Swarm并发现了一些我不太了解的问题。基本上,我使用Consul Sevice Discovery创建了一个Docker-Swarm集群(node-01和node-02)。然后我运行一个多容器应用程序(带有Mongo的Express应用程序),我可以看到它在node-02上运行。为了运行它,我必须进入并找到我的node-02的IP地址,然后打开浏览器。
它工作正常,只是我希望我可以去一些虚拟IP(或DNS),然后Consul服务(或Swarm)将其转换为node-02的正确IP地址这个例子。
下一项是当我登录Consul web UI时,我希望看到“节点”菜单下的节点,但似乎并非如此。我还期望得到我在node-01和node-02上运行的'应用程序'或'服务'的概述,但事实并非如此。
我的问题是:
注意:虽然我已经在博客文章(带屏幕截图)中记录完整设置,但我试图尽可能地缩短那些想要查看更多细节的人。 Go to blog post
答案 0 :(得分:2)
我想访问该服务而无需使用Swarm代理的IP地址
这是可行的,您只需要在容器(reverse proxy)中启动{em> nginx ,例如here are the official nginx images。在启动此容器时,使用带有应用程序名称的选项--link
。因此,此容器的IP地址将添加到反向代理容器的文件/etc/hosts
中(请记住使用--name
和--hostname
)。在特定节点上运行此反向代理容器。
因此摆脱IP地址问题的解决方案是在特定节点上部署另一个容器(然后是特定的IP地址)?是的!但是使用--link
将使此问题可扩展;)
我原本希望看到节点下的节点'菜单,但似乎不是这样。
你的意思是什么?你有什么期望?您需要查询k,v-storage DB吗?
答案 1 :(得分:1)