由于连接失败,无法创建 Docker Swarm

问题描述 投票:0回答:1
  1. 目标:创建 Docker Swarm

  2. 条件:

    • 主机A:Ubuntu 23.10
    • 主机B:Mac Sonoma 14.1.2
  3. 操作:

    • 在主机A中:
      docker swarm init
      
    • 在主机B中:
      docker swarm join --token SWMTKN-1-3o2m78qf57hy2zikfx8p2yc7hrn63edlmlixwrq7bh28xws7zx-9oirn0wh3mbrdui3kcwytl560 192.168.65.9:2377
      
  4. 错误:

    Error response from daemon: rpc error: code = Unavailable desc = connection error:
    desc = "transport: Error while dialing dial tcp 192.168.65.9:2377: connect: no route to host"
    
  5. 到目前为止我所做的:

    • 在Ubuntu主机A上安装了firewalld,但由于未知原因导致系统崩溃。我猜这是因为Ubuntu 23.10不再支持firewalld了。
    • 在 Ubuntu 主机 A 上使用 ufw 命令打开通信端口,但不起作用。
  6. 寻求帮助:我看到其他人可以轻松地运行教程中的“docker swarm join”命令。为什么我遇到这个问题?任何人都可以帮助我吗?非常感谢您的帮助。

docker-swarm
1个回答
0
投票

您需要打开多个端口进行通信(在

A
以及
B
主机上):

正如 Docker 文档所说:

  • 端口 2377 TCP 用于与管理器节点以及管理器节点之间进行通信
  • 端口 7946 TCP/UDP 用于覆盖网络节点发现
  • 用于覆盖网络流量的端口 4789 UDP(可配置)

此外:

  • 用于安全 Docker 客户端通信的端口 2376 TCP。

设置 UFW 配置(或按照您在问题中提到的方式禁用 UFW):

ufw allow 22/tcp
ufw allow 2376/tcp
ufw allow 2377/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 4789/udp
ufw reload
ufw enable
systemctl restart docker

您也可以根据此文档检查 IpTables 配置:https://www.digitalocean.com/community/tutorials/how-to-configure-the-linux-firewall-for-docker-swarm-on-ubuntu -16-04

但是,“Docker for Mac”使用与基于 Linux 不同的网络,这可能会导致 Docker Swarm 出现混乱。这是它的门票:https://github.com/moby/swarmkit/issues/1146#issuecomment-231412874

根据上述问题,Mac 目前只能运行单节点 Swarm。 (我没有找到解决办法)

© www.soinside.com 2019 - 2024. All rights reserved.