Docker swarm集装箱可以';无法接通

Docker swarm集装箱可以';无法接通,docker,networking,docker-swarm,Docker,Networking,Docker Swarm,我有一个有三个节点的小码头工人群 $ sudo docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION jmsidw84mom3k9m4yoqc7rkj0 ip-172-31-a-x.region.compute.in

我有一个有三个节点的小码头工人群

$ sudo docker node ls
ID                            HOSTNAME                                     STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
jmsidw84mom3k9m4yoqc7rkj0     ip-172-31-a-x.region.compute.internal    Ready               Active                                  19.03.1
qg1njgopzgiainsbl2u9bmux4 *   ip-172-31-b-y.region.compute.internal   Ready               Active              Leader              19.03.1
yn9sj3sp5b3sr9a36zxpdt3uw     ip-172-31-c-z.region.compute.internal   Ready               Active                                  19.03.1
我正在运行三个redis容器

$ sudo docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                      PORTS
6j9mmnpgk5j4        redis              replicated          3/3                 172.31.m.n:5000/redis
但我无法让redis sentinel在它们之间工作——读取日志时,似乎存在连接故障

将它们作为三个独立的redis实例,我一直在测试连接性,我可以从任何主机上的shell远程登录到另一个节点的主机IP,并连接到容器上运行的服务。如果我对容器上的外壳执行相同的操作,它将无法连接

i、 e

然后它就挂了。类似地,我不能在443上从容器中远程登录google.com,但我可以在主机上。奇怪的是,平确实从容器中出来了

有什么建议吗

redis方面是一个危险的方面,我现在可以调试它了——我考虑到telnet默认不在容器(alpine linux)上,因此必须有一些连接,但我无法telnet到它声称在安装时下载的Web服务器端口


事实证明,telnet客户端alpine linux安装版本出现了一些问题—nmap和curl的行为符合预期。

此博客是否有帮助?—就这个堆栈而言,没有,因为我没有使用compose(我使用的是ansible的docker\u swarm\u服务模块)。但如果我无法解决这个问题,我可能会下一步放弃ansible并尝试编写。编写说
compose不使用swarm模式将服务部署到swarm中的多个节点。所有容器都将安排在当前节点上。
-太糟糕了。几年前有人这样做:
[centos@172.31.a.x ~]$ telnet 172.31.b.y 6379
Trying 172.31.b.y...
Connected to 172.31.b.y.
Escape character is '^]'.
^CConnection closed by foreign host.
[centos@172.31.a.x ~]$ sudo docker exec -it 4d5abad441b8 sh
/ # telnet 172.31.14.12 6379