如何在WSL 2中配置Docker Swarm模式?解决节点加入报错
WSL 2 下 Docker Swarm 模式配置及节点加入问题解决
先解决当前节点重复加入Swarm的错误
- 在提示错误的worker节点执行命令退出现有Swarm:
若该节点曾是管理节点,需添加docker swarm leave--force参数强制退出:docker swarm leave --force - 退出后重新执行管理节点生成的worker加入命令即可。
WSL 2 使用Docker Swarm的关键配置
1. 保证节点Docker环境独立(多节点场景)
搭建多节点Swarm时,不要让多个WSL2实例共享Windows Docker Desktop的daemon,每个WSL2发行版需单独安装Docker引擎,才能作为独立的Swarm节点。
2. 配置WSL 2静态IP(避免IP变动导致Swarm通信失败)
WSL2默认IP会随重启变化,需设置静态IP:
- 编辑
/etc/wsl.conf,禁用自动生成网络配置:[network] generateResolvConf = false - 编辑网络配置文件(以Ubuntu为例,路径为
/etc/netplan/00-installer-config.yaml),写入静态IP配置:network: ethernets: eth0: addresses: [192.168.100.10/24] # 自定义静态IP,需和Windows子网段匹配 gateway4: 192.168.100.1 # Windows的WSL2网关IP,可通过`ip route`查看 nameservers: addresses: [8.8.8.8, 1.1.1.1] version: 2 - 执行命令生效配置:
sudo netplan apply - 重启WSL2(Windows终端执行
wsl --shutdown后重新打开)。
3. 初始化Swarm时指定静态IP
在管理节点初始化Swarm时,必须指定自己的静态IP,否则默认会用127.0.0.1,导致worker节点无法连接:
docker swarm init --advertise-addr <你的静态IP>
执行后生成的worker加入命令会包含该静态IP,确保worker节点能正常访问。
4. 确保节点间网络互通
- 在worker节点ping管理节点的静态IP,确认能正常通信。
- 检查Windows防火墙,放行Swarm所需端口:2377/tcp(集群管理)、7946/tcp/udp(节点间通信)、4789/udp(Overlay网络数据)。
内容的提问来源于stack exchange,提问作者Swastik
相关产品推荐
相关产品推荐

