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

启动两个docker-compose实例时创建网络卡住是什么问题?

问题原因分析与解决方案

首先可以排除端口配置问题:端口冲突的报错会出现在容器启动阶段,不会卡在网络创建环节,你修改端口号的操作没有问题,问题和端口配置无关。


可能的触发原因及对应解决方法:

  • 原因1:Docker默认网桥地址池耗尽
    Docker默认按顺序分配172.17.0.0/16、172.18.0.0/16这类子网段给新建的网桥网络,如果你之前创建过大量未清理的Docker网络,可用子网耗尽就会导致网络创建卡住。
    验证命令:

    # 查看已存在的网络列表
    docker network ls
    # 查看指定网络的子网分配情况
    docker network inspect <已存在的网络名>
    

    解决方法:执行以下命令清理所有未被容器使用的闲置网络,释放地址池资源:

    docker network prune
    
  • 原因2:iptables/nftables规则冲突
    Docker创建网桥时会自动写入iptables转发规则,如果你的系统开启了firewalld、ufw等防火墙,或者系统默认使用nftables(CentOS 8+/Debian 10+默认),和你使用的Docker 20.10.8版本存在兼容性问题,就会导致规则写入阻塞。
    解决方法:临时关闭防火墙测试启动是否正常,若正常可将Docker的默认子网段加入防火墙白名单;也可以升级Docker到20.10最新稳定版修复nftables兼容性问题。

  • 原因3:Docker daemon状态异常
    长时间运行的Docker daemon可能出现资源泄露、状态不一致的问题,导致网络创建操作阻塞。
    解决方法:重启Docker daemon后再尝试启动实例:

    systemctl restart docker
    

长期优化方案

如果需要长期创建大量同类实例,可以手动调整Docker的默认地址池配置,在/etc/docker/daemon.json中添加如下内容:

{
  "default-address-pools": [
    {"base": "172.16.0.0/12", "size": 24}
  ]
}

修改后重启Docker daemon即可获得更多可用的子网段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:15:04