无法将aws EC2实例作为工作程序连接到docker群管理器

时间:2019-05-09 09:41:20

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

我无法将docker worker连接到docker swam manager。

我创建了多个aws EC2实例,并使其其中一个作为管理者docker swarm init --listen-addr 0.0.0.0:2377,并尝试通过其他EC2实例docker swarm join 0.0.0.0:2377作为工作人员进行连接,但这给了我一个错误。 / p>

 "Error response from daemon: Timeout was reached before node joined`. 
The attempt to join the swarm will continue in the background".

我需要我的docker swarm管理器列出docker node ls包括管理器和工作器在内的所有节点。

3 个答案:

答案 0 :(得分:0)

您需要在docker swarm join命令中使用真实IP地址。

“ 0.0.0.0”不是真正的IP地址,它是“所有(本地)IP地址”的别名,不是您可以连接的地址。

答案 1 :(得分:0)

1。在主节点中运行命令: docker swarm join-token worker

2。然后运行从上一步获得的命令

示例:

root @ ubuntu:〜#docker swarm join-token worker 要将工作程序添加到该工作组,请运行以下命令:

docker swarm join --token SWMTKN-1-0akniaryx9xg8mmb08rbd42kwntigfkyk33vt7ac0wrehn58mk-5voo7jfl3kl40yl4cmvf16lgt 10.0.10.4:2377

root @ ubuntu:〜#

在工作节点上运行: docker swarm join --token SWMTKN-1-0akniaryx9xg8mmb08rbd42kwntigfkyk33vt7ac0wrehn58mk-5voo7jfl3kl40yl4cmvf16lgt 10.0.10.4:2377

答案 2 :(得分:0)

要解决此问题,我需要公开来自Docker Worker和Docker Manager实例的相应端口。

我在解决此问题时发现了一些信息

TCP端口2377 是用于通信的默认端口,因此请在AWS EC2的安全组中为端口2377添加自定义TCP规则。

TCP端口2376 ,用于安全的Docker客户端通信。 Docker Machine需要此端口。 Docker Machine用于编排Docker主机。

TCP端口2377 ,该端口用于Docker Swarm或群集的节点之间的通信。它只需要在管理器节点上打开。

TCP和UDP端口7946 ,用于节点之间的通信(容器网络发现)。

UDP端口4789 ,用于覆盖网络流量(容器入口网络)。

请注意:除了这些端口以外,还必须打开端口22(用于SSH流量)以及在群集上运行特定服务所需的任何其他端口。

相关问题