Docker 加入码头工人大军

Docker 加入码头工人大军,docker,Docker,我有两个虚拟机 在我第一次跑步时: docker swarm join-token manager 第二次运行此命令的结果 i、 e 然而,这将产生: Error response from daemon: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error wh

我有两个虚拟机

在我第一次跑步时:

docker swarm join-token manager
第二次运行此命令的结果

i、 e

然而,这将产生:

Error response from daemon: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp 192.168.65.3:2377: connect: connection refused"
知道怎么回事吗


如果有帮助的话,我将使用Vagrant使这些虚拟机加速。

只需将端口添加到主机端的防火墙 防火墙cmd-添加端口=2377/tcp-永久 防火墙命令-重新加载


然后再次尝试在第二个VM或节点端加入docker swarm,只需将端口添加到主机端的防火墙即可 防火墙cmd-添加端口=2377/tcp-永久 防火墙命令-重新加载


然后再次尝试在第二个VM或节点端加入docker swarm,看起来您的docker swarm manager leader没有在端口2377上运行。您可以通过在swarm manager leader vm上启动此命令来检查它。如果它工作正常,那么您将获得类似的输出

[root@host1]# docker node ls
ID                            HOSTNAME                     STATUS              AVAILABILITY        MANAGER STATUS
tilzootjbg7n92n4mnof0orf0 *   host1    Ready               Active              Leader
此外,您还可以检查leader swarm manager节点中的侦听端口。它应该具有用于群集管理通信的端口tcp 2377和用于节点间通信的tcp/udp端口7946

[root@host1]# netstat -ntulp | grep dockerd
tcp6       0      0 :::2377                 :::*                    LISTEN      2286/dockerd
tcp6       0      0 :::7946                 :::*                    LISTEN      2286/dockerd
udp6       0      0 :::7946                 :::*                                2286/dockerd
在配置第二个swarm manager的第二个vm中,您必须确保连接到leader swarm manager的端口2377。您可以使用telnet、wget、nc等工具测试连接,如下所示

[root@host2]# telnet <swarm manager leader ip> 2377
Trying 192.168.44.200...
Connected to 192.168.44.200.

看起来你的docker swarm manager主管没有在端口2377上运行。您可以通过在swarm manager leader vm上启动此命令来检查它。如果它工作正常,那么您将获得类似的输出

[root@host1]# docker node ls
ID                            HOSTNAME                     STATUS              AVAILABILITY        MANAGER STATUS
tilzootjbg7n92n4mnof0orf0 *   host1    Ready               Active              Leader
此外,您还可以检查leader swarm manager节点中的侦听端口。它应该具有用于群集管理通信的端口tcp 2377和用于节点间通信的tcp/udp端口7946

[root@host1]# netstat -ntulp | grep dockerd
tcp6       0      0 :::2377                 :::*                    LISTEN      2286/dockerd
tcp6       0      0 :::7946                 :::*                    LISTEN      2286/dockerd
udp6       0      0 :::7946                 :::*                                2286/dockerd
在配置第二个swarm manager的第二个vm中,您必须确保连接到leader swarm manager的端口2377。您可以使用telnet、wget、nc等工具测试连接,如下所示

[root@host2]# telnet <swarm manager leader ip> 2377
Trying 192.168.44.200...
Connected to 192.168.44.200.
我做了防火墙cmd-addport=2377/tcp-permanentalfirewall cmd-reload已经在主机端了,但仍然得到相同的错误。 我在工作节点上执行了telnet 2377,然后在主节点上重新启动。 然后它就可以正常工作了。

我已经在主机端执行了firewall cmd-add port=2377/tcp-permanent firewall cmd-reload,但仍然收到相同的错误。 我在工作节点上执行了telnet 2377,然后在主节点上重新启动。
然后它工作正常。

两个虚拟机之间的连接问题?我会在swarm master中运行一个tcpdump来嗅探两个VM之间的输入连接问题?我会在swarm master中运行一个tcpdump来嗅探输入的连接。我遇到了相同的错误`来自守护进程的错误响应:rpc错误:代码=不可用描述=连接错误:描述=传输:拨号tcp 172.17.0.1:2377:连接:连接被拒绝`我意识到这是因为我使用了两个虚拟机,我需要使用FQDN而不是ip。在使用join cluster命令替换ip后,我能够使其正常工作。我遇到了相同的错误`来自守护进程的错误响应:rpc错误:代码=不可用desc=连接错误:desc=传输错误:拨号时拨打tcp 172.17.0.1:2377:connect:连接被拒绝`我意识到这是因为我使用了两个VM,并且我需要使用FQDN而不是ip。在join cluster命令中替换了ip之后,我就能够让它工作了