Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 码头工人和领事举例:需要澄清吗_Docker_Consul - Fatal编程技术网

Docker 码头工人和领事举例:需要澄清吗

Docker 码头工人和领事举例:需要澄清吗,docker,consul,Docker,Consul,我正在和领事一起学习Docker Swarm,发现了一些我不太理解的问题。基本上,我用Concur Sevice Discovery创建了一个Docker Swarm集群(node-01和node-02)。然后我运行一个多容器应用程序(带有Mongo的Express应用程序),我可以看到它正在node-02上运行。为了运行它,我必须进入并找到node-02的IP地址,然后打开浏览器 它工作得很好,只是我希望我可以访问一些虚拟IP(或DNS),然后在本例中,领事服务(或Swarm)会将其转换为no

我正在和领事一起学习Docker Swarm,发现了一些我不太理解的问题。基本上,我用Concur Sevice Discovery创建了一个Docker Swarm集群(node-01和node-02)。然后我运行一个多容器应用程序(带有Mongo的Express应用程序),我可以看到它正在node-02上运行。为了运行它,我必须进入并找到node-02的IP地址,然后打开浏览器

它工作得很好,只是我希望我可以访问一些虚拟IP(或DNS),然后在本例中,领事服务(或Swarm)会将其转换为node-02的正确IP地址

下一项是,当我登录到Consour web UI时,我希望看到“节点”菜单下的节点,但情况似乎并非如此。我还希望了解我在node-01和node-02上运行的“应用程序”或“服务”的概况,但事实并非如此

我的问题是:

  • 有人能解释一下为什么我需要手动找出我的应用程序运行在集群中的哪个节点上吗。无法想象这是在更大的部署中完成的
  • 有人能解释为什么我在领事UI中看不到“节点”和“服务”吗
  • 注意:我尽量简短,尽管我已经在一篇博客文章中记录了完整的设置(带有截图),供那些想看到更多细节的人使用

    问题1 我想访问该服务,而不必使用Swarm代理的IP地址

    解决方案 这是可行的,您只需要启动一个容器()中的。启动此容器时,使用带有应用程序名称的选项
    --link
    。因此,此容器的IP地址将添加到反向代理容器的文件
    /etc/hosts
    (请记住使用
    --name
    --hostname
    )。在特定节点上运行此反向代理容器。 因此,消除IP地址问题的解决方案是在特定节点(然后是特定IP地址)上部署另一个容器。是!但是使用
    --link
    将使此问题具有可扩展性;)

    问题2 我本来希望看到“节点”菜单下的节点,但事实似乎并非如此

    你什么意思?你期待什么?是否需要查询k,v存储数据库?

    请检查:


    我可以建议你读一下吗?--虽然没有花时间阅读你的问题,只是标题,但它并没有真正解决我的两个具体问题。我下面的答案是否缺乏细节或没有答案?我设置了一个反向代理,这很有效
                         Microservices Sample Architecture