【问题标题】:Docker Swarm on AWS: Expose service port not working on AWS virtual machineAWS 上的 Docker Swarm:暴露服务端口在 AWS 虚拟机上不起作用
【发布时间】:2020-09-01 11:17:47
【问题描述】:

我有 2 个 AWS 虚拟机实例,在 2 个 IPv4 公共 IP A.B.C.D 和 X.Y.Z.W 上运行 我在两台机器上都安装了 Docker,并启动了 Docker Swarm,节点 A.B.C.D 作为管理器,X.Y.Z.W 作为工作器。当我启动 Docker Swarm 时,我使用 A.B.C.D 作为广告地址,如下所示:

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

Swarm 初始化成功

当我从图片jwilder/whoami创建服务并将服务暴露在8000端口时出现问题:

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

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

我也在 Azure 虚拟机上尝试过这个实验,但 alo 失败了,所以我猜这是 Swarm 在这些云提供商上的问题,可能是网络配置错误。

有谁知道如何解决这个问题?在此先感谢:D

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 docker-swarm


    【解决方案1】:

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

    【讨论】:

    • 是的,我在入站规则上打开了所有端口
    • SG 中有 3 个额外的端口? 8000、7946和4789。尝试ping之间或traceroute进行故障排除
    猜你喜欢
    • 2019-06-04
    • 2019-06-22
    • 2020-11-13
    • 2016-12-14
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2018-09-03
    • 2021-02-04
    相关资源
    最近更新 更多