Docker网关冲突导致容器启动网络异常解决方案
一、故障现象
- 执行docker-compose up命令时服务器网络中断
- 控制台显示"Creating network xxxxxxx with the default driver"
- 通过ifconfig可见docker0网卡
- docker network ls显示新创建的网络接口
二、根本原因
- Docker服务默认创建docker0虚拟网卡(默认地址172.17.0.1/16)
- docker-compose自动创建新网桥时可能产生IP段冲突
- 宿主机网络与容器网络地址段重叠导致路由异常
三、解决方案
-
修改docker0默认地址段 a. 停止docker服务: sudo systemctl stop docker sudo systemctl stop containerd
b. 删除现有docker0接口: sudo ip link delete docker0
c. 创建配置文件: sudo vi /etc/docker/daemon.json 添加内容: { "bip": "192.168.200.1/24" }
d. 重启服务: sudo systemctl start docker
-
配置docker-compose.yml 在服务定义中添加网络模式: services: your-service: network_mode: "bridge"
四、验证步骤
-
检查docker0地址: ifconfig docker0 | grep inet
-
查看网络接口列表: docker network ls
-
测试容器启动: docker-compose up -d