更改docker自定义网络的默认子网

更改docker自定义网络的默认子网,docker,docker-compose,Docker,Docker Compose,我们的内部网络为内部目的保留了172.20.0.0/16范围,docker默认情况下将172范围用于其内部网络。通过向守护进程提供bip设置,我可以将网桥重置为192.168: ➜ ~ sudo cat /etc/docker/daemon.json { "bip": "192.168.2.1/24" } ➜ ~ ifconfig docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu

我们的内部网络为内部目的保留了172.20.0.0/16范围,docker默认情况下将172范围用于其内部网络。通过向守护进程提供
bip
设置,我可以将网桥重置为192.168:

➜  ~ sudo cat /etc/docker/daemon.json
{
  "bip": "192.168.2.1/24"
}

➜  ~ ifconfig                        
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.2.1  netmask 255.255.255.0  broadcast 0.0.0.0
我知道我可以将子网值提供给
docker network create
,但我更希望在
192.168.*
下创建所有此类子网


如何配置dockerd以自动执行此操作?

对于发现此问题的任何人。现在这是可能的

$ docker -v
Docker version 18.06.0-ce, build 0ffa825
编辑或创建docker守护程序的配置文件:

# nano /etc/docker/daemon.json
添加行:

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}
重新启动dockerd:

# service docker restart
检查结果:

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"
它也适用于docker compose


您的
“bip”:“192.168.2.1/24”
仅适用于bridge0。这意味着任何运行时没有
--network
的容器都将使用此默认网络。

这是否也适用于
docker compose生成的网络?可能不会?老兄,为什么它是/16,大小是24?@Obay Abd Algader docker将创建一个10.10.0.0/16的“池”。然后,每个子网将/24从池中取出。谢谢,我在@anch2150获得了它。此外,我还注意到,除非手动删除,否则旧网络将保留在那里。
$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"