Appearance
管理docker网络地址范围
默认网络
Docker 默认的网络设置使用了 bridge 网络驱动,默认情况下 Docker 容器会连接到这个 bridge 网络。Docker 的默认 bridge 网络通常使用以下 IP 段:
默认子网: 172.17.0.0/16 默认网关: 172.17.0.1 每次创建新的容器时,Docker 会为该容器分配一个 IP 地址,通常在 172.17.0.0/16 范围内。
默认情况下每个docker-compose.yml文件都会创建一个网络 地址类似下面的 172.18.0.0/16 172.19.0.0/16 172.20.0.0/16
这样的网络分配可能会和本地的网络冲突,导致无法上网等问题。
可以使用ip route | grep br-*
查看存在的网络
也可以使用docker network ls
查看docker网络和容器关联信息
限制docker网络在172.17.0.0/16内
sudo nano /etc/docker/daemon.json
修改文件,添加如下内容:
json
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24}
]
也可以配置多个地址池,如:
json
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24},
{"base": "172.18.0.0/16", "size": 24}
]
配置完成后,重启docker服务即可。
不过已经分配的地址池不会被修改,需要重新分配。
操作是删除容器,再重新启动即可