You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Multipass虚拟机初始化Docker Swarm出现IP相关报错如何解决

问题解决方法

报错根因

你收到的报错是因为docker swarm init命令中指定的10.173.198.201并不是node1虚拟机本身实际绑定的网卡IP,Docker无法找到对应IP完成绑定操作。

第一步:验证虚拟机真实IP

先执行以下命令查看node1的实际IP地址:

multipass info node1

从输出的IPv4字段获取虚拟机当前的有效IP。

修复Swarm初始化命令

两种可选方案,任选其一即可:

  • 方案1:替换为虚拟机真实IP
    假设查询到的node1真实IP为192.168.64.8,执行如下命令即可:
multipass exec node1 -- /bin/bash -c 'docker swarm init --advertise-addr 192.168.64.8:2377 --listen-addr 0.0.0.0:2377'

listen-addr设置为0.0.0.0:2377表示监听本机所有网卡的2377端口,无需指定固定IP。

  • 方案2:直接指定网卡名称
    不需要手动查询IP,直接指定虚拟机内的网卡名称(Multipass创建的实例默认网卡一般为eth0),Docker会自动读取该网卡的IP完成配置:
multipass exec node1 -- /bin/bash -c 'docker swarm init --advertise-addr eth0:2377'
如何创建IP不含0段的Multipass实例

可以实现,两种操作方式:

  • 临时指定IP创建实例
    创建实例时通过--network参数手动指定需要的IP段,示例如下(需要提前配置好本地桥接网卡对应网段的路由):
multipass launch --network name=bridged,mode=manual,ip=192.168.64.10/24,gateway=192.168.64.1 --name node1
  • 永久修改默认分配网段
    修改Multipass的网络配置文件:
    • macOS路径:/var/root/Library/Application Support/multipassd/network.yaml
    • Linux路径:/var/snap/multipass/common/data/multipassd/network.yaml
      在配置中添加/修改dhcp_range参数为你需要的非0段,示例:
dhcp_range: 192.168.64.10,192.168.64.200

修改完成后重启multipassd服务,后续新创建的实例都会自动分配该网段的IP。

内容的提问来源于stack exchange,提问作者Shamir Imtiaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:57:04