Docker-Compose构建报错network bridge not found,求正确解决方法
问题解决:Docker Compose构建时"network bridge not found"报错
问题原因
你的Docker守护进程配置了"bridge": "none",禁用了默认网桥,但构建阶段(build)默认依赖Docker的构建网络,而network_mode: host是针对容器运行阶段的配置,对构建过程完全无效,这就是添加后问题依旧的原因。
解决方法
提供两种可行方案,按需选择:
方案1:为构建阶段指定host网络
修改docker-compose.yml,在build区块内添加network: host,让构建过程直接复用宿主机网络,就能正常访问外网执行npm install:
version: '3' services: myapp: build: context: . dockerfile: Dockerfile network: host # 新增:构建阶段使用host网络 restart: always volumes: - ./data:/app/data ports: - 3000:3000 network_mode: host # 保持运行阶段的host网络配置(若有需要)
方案2:创建自定义网桥并配置Docker默认使用
如果不想用host网络,可创建自定义网桥并修改Docker守护进程配置:
- 创建自定义网桥:
docker network create --driver bridge my-custom-bridge
- 修改
/etc/docker/daemon.json,将"bridge": "none"替换为自定义网桥名称:
{ "ipv6": true, "iptables": true, "bridge": "my-custom-bridge", "bip": "", "default-address-pools": [ ... ], ... }
- 重启Docker守护进程:
systemctl restart docker
- 重新执行
docker-compose up --build,此时构建和运行阶段都会使用自定义网桥。
注意事项
- 方案1操作简单,适合快速解决构建网络问题;
- 方案2更贴合Docker网络规范,适合需要自定义网络规则的场景。
内容的提问来源于stack exchange,提问作者meles
相关产品推荐
相关产品推荐

