Docker swarm 无法在两个 Windows 系统中工作,无法连接 docker swarm 中的工作节点

2023-12-06

我有2个windows10系统,我们如何使用docker swarm连接两个系统,一个系统是管理节点,第二个系统是工作节点,请支持并建议我该怎么办??? 我已经尝试过,但面临这个错误...... 来自守护程序的错误响应:在节点加入之前已达到超时。加入群体的尝试将在后台继续进行。使用“docker info”命令查看节点当前的 swarm 状态。


Docker for Windows 尚不支持使用 Windows 10 管理节点创建多节点 Swarm。https://docs.docker.com/engine/swarm/swarm-tutorial/。 “目前,您无法单独使用 Docker Desktop for Mac 或 Docker Desktop for Windows 来测试多节点群”。

幸运的是,如果您需要运行 Windows 容器,可以使用 Linux 管理节点 + Windows 工作节点创建混合操作系统 Swarm。我在 SO 和其他博客上进行了大量搜索才得到正确的所有步骤。为了方便起见,将所有内容发布在 1 个位置。以下是我用于基本 Ubuntu 管理器 + Win 10 Worker Swarm 的步骤:

  1. 设置 Linux 机器。我使用 64 位 Ubuntu 18.04.3 桌面进行测试。

  2. 安装 Docker 引擎。

    sudo apt install curl  
    sudo curl -fsSL https://get.docker.com -o get-docker.sh  
    sudo sh get-docker.sh  
    
  3. 将 Docker 配置为在机器重新启动时自动启动。

    sudo systemctl enable docker.service  
    sudo systemctl enable containerd.service  
    
  4. 配置防火墙。请注意,以下 ufw 防火墙步骤适用于 Ubuntu。请参阅此链接中其他 Linux 发行版(例如 Fedora、CentOS 等)的替代步骤。https://www.digitalocean.com/community/tutorials/how-to-configure-the-linux-firewall-for-docker-swarm-on-ubuntu-16-04)

    sudo ufw enable  
    sudo ufw allow 22/tcp  
    sudo ufw allow 2376/tcp  
    sudo ufw allow 2377/tcp  
    sudo ufw allow 7946/tcp  
    sudo ufw allow 7946/udp  
    sudo ufw allow 4789/udp  
    sudo ufw reload  
    
  5. 显示机器IP信息

    nmcli dev status  
    
  6. 找到第 5 步中的第一个设备名称,例如:“ens160”。

    nmcli dev show ens160  
    
  7. 初始化 Swarm。使用第 6 步中的 IP 地址:IP4.ADDRESS[1],例如:“10.10.9.233/24”。

    sudo docker swarm init --advertise-addr=10.10.9.233 --listen-addr=10.10.9.233:2377  
    

    (如果成功,终端将返回带有令牌的 Docker join 命令。配置完工作节点后,在工作节点上执行此命令。)

  8. Windows Swarm 工作配置(在提升的命令提示符中运行。如果您计划运行 Windows 容器,请确保在加入 Swarm 之前将 Docker Desktop 设置为 Windows 容器模式。)

    netsh advfirewall firewall add rule name = "Cluster Management" dir=in action=allow protocol=TCP localport=2377  
    netsh advfirewall firewall add rule name = "Communication among nodes" dir=in action=allow protocol=TCP localport=7946  
    netsh advfirewall firewall add rule name = "Communication among nodes" dir=in action=allow protocol=UDP localport=7946  
    netsh advfirewall firewall add rule name = "Overlay traffic" dir=in action=allow protocol=UDP localport=4789  
    docker swarm join --token SWMTKN-1-19ouqnwbmagl4bvekw7b8qf30asjgzde3b0f7uuggiuwucmf6m-axu8c9hzz10wmhgwubde0d7bj 10.10.9.233:2377  
    
  9. (可选)如果您需要更多 Linux 容器容量...Linux Swarm 工作线程配置(对于非 Ubuntu Linux 发行版,请使用上面的 DigitalOcean 链接。)

    sudo ufw enable  
    sudo ufw allow 22/tcp  
    sudo ufw allow 2376/tcp  
    sudo ufw allow 7946/tcp  
    sudo ufw allow 7946/udp  
    sudo ufw allow 4789/udp  
    sudo ufw reload  
    docker swarm join --token SWMTKN-1-19ouqnwbmagl4bvekw7b8qf30asjgzde3b0f7uuggiuwucmf6m-axu8c9hzz10wmhgwubde0d7bj 10.10.9.233:2377  
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker swarm 无法在两个 Windows 系统中工作,无法连接 docker swarm 中的工作节点 的相关文章

随机推荐