【发布时间】:2017-12-11 01:48:50
【问题描述】:
我正在尝试测试如何使用 docker API 与 docker swarm 交互。我在运行 docker 的 AWS 中有一个 ec2 实例。我需要使用 curl 从我的本地计算机连接到它,然后初始化 swarm 并在使用它将其他 2 个 ec2 实例连接到 swarm 之后获取加入令牌。我只需要使用 curl 来完成所有这些工作。
我通过 ssh'ing 到实例并运行手动创建了集群:
docker swarm init --advertise-addr 10.0.0.2
然后我尝试运行这个 curl 命令:
curl 10.0.0.2:2377/swarm
curl 10.0.0.2:2377/info
我得到一个空行。如果我尝试将端口更改为 2376,则会收到连接被拒绝错误。
我错过了什么?
运行netstat -tuplen,发现如下结果:
【问题讨论】:
-
将 -i 添加到 curl 并显示它。
curl -i ....... -
相同的结果没有返回任何东西
-
似乎是一个显而易见的问题,但您在 Swarm 上运行什么服务?启动时是否暴露了端口?
-
@ManoMarks 感谢您的评论!我现在没有运行任何服务,我需要连接到集群管理器本身而不是服务。如果我错了,请纠正,但我认为管理器的端口不需要额外的设置来公开吗?
-
抱歉,我错过了您编写 API 的部分。您正在尝试使用远程 api。因此,默认情况下,它要求您使用 https 进行连接,这需要证书。更多信息:docs.docker.com/engine/security/https您是在安全模式下开始的吗?
标签: curl docker amazon-ec2 docker-swarm