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

docker-compose up启动容器报sandbox接口路由冲突如何解决

故障原因

该报错本质是IP网段路由冲突:你新增的mumble自定义bridge网络,Docker默认自动分配的网段为172.18.0.0/16,但该网段对应的路由规则已经在当前网络命名空间中存在,来源通常是两类:

  • 之前创建过的Docker网络未被完全清理,残留了对应网段的路由规则、虚拟网卡
  • 宿主机上其他网络服务(VPN、其他虚拟化软件、本地局域网互联接口)已经占用了172.18.0.0/16网段
    Docker尝试给botamusique容器分配172.18.0.3/16地址时,检测到同网段已经存在指向172.18.0.1的路由条目,无法写入新的接口地址规则,因此容器启动失败。
排查步骤
  • 执行ip route show查看宿主机全局路由表,定位目标为172.18.0.0/16的路由条目,确认其对应的网络接口来源。
  • 执行docker network ls列出所有已存在的Docker网络,再通过docker network inspect 网络ID逐个查看网络的网段配置,确认是否有其他Docker网络占用了172.18.0.0/16段。
  • 执行docker ps -a查看是否有处于异常退出、僵死状态的容器残留了对应网络的veth端点。
修复方案

根据排查到的冲突来源对应处理:

  1. 冲突来源为Docker残留资源
    • 先在docker-compose.yml所在目录执行docker-compose down停止关联的所有容器
    • 执行docker network prune -f清理所有未被容器使用的闲置网络,若定位到明确占用冲突网段的废弃网络,可直接执行docker network rm 冲突网络ID手动删除
    • 重启Docker服务:systemctl restart docker
    • 重新执行docker-compose up -d启动服务即可。
  2. 冲突来源为宿主机其他服务/网络
    不要使用Docker自动分配的网段,手动给自定义mumble网络指定一个未被占用的私有网段即可,修改docker-compose.yml的顶层networks配置(服务下挂载的网络配置无需改动),示例如下:
    # 原有services块下的murmur、botamusique配置保持不变
    networks:
      mumble:
        driver: bridge
        ipam:
          driver: default
          config:
            - subnet: 172.27.0.0/16
              gateway: 172.27.0.1
    
    配置里的subnet可以换成你宿主机路由表中不存在的任意私有网段,比如10.10.0.0/16、172.20.0.0/16到172.31.0.0/16之间未被占用的段都可以。修改完成后执行docker-compose up -d重新启动服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:27:22