Docker 在创建网络时默认使用 172.17.0.0/16 网段,容易和局域网内其他网段产生冲突,比如在腾讯云购买的云数据库就处于172.17.0网段
方法一(在已用生产环境下不推荐使用,因为需要重启Docker服务):
可以通过修改 Docker 配置文件来更改默认网络的子网范围。在 /etc/docker/daemon.json 文件中添加如下内容:
{
"default-address-pools": [
{
"base": "172.20.0.0/16",
"size": 24
}
]
}
修改后需要重启 Docker 服务:
$ sudo systemctl restart docker
方法二、自定义网络:
对于每个新创建的容器,Docker 会根据其内部的逻辑分配一个未使用的子网。若要为所有新的bridge网络指定不同的子网,可以创建自定义网络,并指定所需的子网范围:
$ docker network create --driver bridge --subnet=192.168.10.0/24 my_custom_network
可以在不影响其他容器网络的前提下,管理特定应用容器的网络环境,更适合精细粒度的网络控制
其他参考命令:
1.查看docker0网桥信息
$ ip addr show docker0
或
$ ifconfig docker0
2.删除 docker0 网桥,Docker 服务重启后会重新创建 docker0 网桥
$ ip link set dev docker0 down
$ brctl delbr docker0