AWS上的Docker Swarm:公开服务端口在AWS虚拟机上不起作用

问题描述

我有2个AWS虚拟机实例,它们在2个IPv4公用IP A.B.C.D和X.Y.Z.W上运行 我在两台机器上都安装了Docker,并以节点A.B.C.D作为管理器和X.Y.Z.W作为工作器启动Docker Swarm。当我启动Docker Swarm时,我将A.B.C.D用作advertise-addr,就像这样:

docker swarm init --advertise-addr A.B.C.D

虫群初始化成功

当我从映像jwilder/whoami创建服务并在端口8000上公开该服务时,发生了问题:

docker service create -d -p 8000:8000 jwilder/whoami

根据Swarm Routing Mesh文档,我希望我可以从两个节点访问端口8000上的服务。但是,实际上我只能从一个节点访问该服务,该节点是容器在其上运行的节点

我也在Azure虚拟机上尝试了该实验,但也失败了,所以我想这是Swarm在这些云提供商上的问题,也许是一些网络配置错误。

有人知道如何解决此问题吗?在此先感谢:D

解决方法

您未提及的一个主要问题是有关安全组的。您公开了端口8000,但默认情况下,安全组仅为SSH打开端口22。请检查SG,并确保您打开了必要的端口。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...