Docker:连接到服务器的Swarm工作者

我有一堆swarm容器(现在在一台主机上,但可能在多主机系统中,符合一个多节点群)。 该系统由一个数据服务器和一组自治的工作人员组成,处理服务器接收到的位并摄取结果。 input数据检索和输出数据的提取是通过HTTP GET / POST完成的。 服务器端(数据供应和结果接收)工作,并且在没有Docker的情况下,针对在任何主机上运行的工作人员进行testing时,运行没有问题。 但是我需要把这些工人放在一个Docker群中。

我无法实现的是不同群体工作者与外部服务器之间的沟通。 我的服务器运行在端口8080的IP为10.69.180.30的主机上。

python test-dataserver.py -H 10.69.180.30 -p 8080 

在几个论坛挖掘后,我尝试创build一个覆盖networking–subnet 10.69.180.0/24,然后启动在另一个主机连接到这个networking的工作人员的服务。 但是没办法。

 docker network create --driver overlay --subnet 10.69.180.0/24 mynet docker service create --network mynet --name mysrv --replicas 4 \ centos curl http://10.69.180.30:8080/get_task 

在这个简单的例子中,我不叫工作人员,而只是curl到服务器的地址和get_task节点。 它应该返回一个JSONstring,包含关于要执行的任务的信息。 但在服务器端,我没有得到任何请求。

我不是一个networking专家,所以我可能会错过一些微不足道的东西…(顺便说一句,我第一次尝试做同样的事情,但服务器运行在同一主机,没有成功。)

你知道这个设置是否可行吗? 我将非常感谢任何暗示使这项工作…

提前致谢!

我会创build一个覆盖networking与docker默认IP范围

dockernetworking创build – 驱动程序覆盖mynet

之后,将外部主机添加到服务。

 docker service create --add-host external:10.69.180.30 \ --network mynet --name mysrv --replicas 4 \ centos curl http://external:8080/get_task