¿Cómo cambiar el espacio de direcciones del puente del acoplador (subnetworking)?

Estoy teniendo un problema con Docker-Componer. Actualmente, mis montones de contenedores se crean en su propia networking personalizada y aislada, que se basa en bridge. Por ejemplo, al ejecutar docker-compose -p client1 up -d crea una networking llamada client1_default que tiene una subnetworking 172.18.0.9/16 que es una gran subnetworking ( /16 ).

No necesito una subnetworking tan grande, /24 sería suficiente.

El problema es que con esta configuration actual estoy limitado a aproximadamente ~ 25 stacks de contenedores porque luego Docker (o libnetwork) se queda sin espacios de direcciones para usar. Estaría mucho mejor con /24 espacios de direcciones porque entonces habría mucho más disponible.

Entonces, la primera pregunta es: ¿cómo puedo hacer que Docker (y docker-compose.yml ) usen /24 subnetworking por defecto sin editar el file docker-compose.yml ? Sé que esto es posible, pero requiere editar el file .yml para cada cliente o crear un .yml superior. Esto no es óptimo

Si esto no es posible directamente, he explorado el código de libnetwork y lo he encontrado (hay espacios de direcciones "Amplio" y "Granular", y de forma pnetworkingeterminada usa "Amplio"). ¿Cómo puedo hacer que Docker use el espacio de direcciones Granular?
Leí aquí que

Por ejemplo, si no se especifica lo contrario en la configuration , libnetwork solicitará el grupo de direcciones desde el espacio de direcciones local pnetworkingeterminado para una networking de puente, mientras que desde el espacio de direcciones global pnetworkingeterminado para una networking de superposition.

Mi pregunta es: ¿cómo puedo especificarlo en la configuration ? ¿Cuál es la configuration mencionada? ¿Cuál es la syntax para cambiar este comportamiento?

¡Gracias por adelantado!

Actualmente no es posible, consulte https://github.com/moby/moby/issues/21776 + https://github.com/moby/moby/pull/29376. Sin embargo, puede participar en la discusión y votar.

Es posible que desee considerar el uso de flanneld mediante CoreOS https://github.com/coreos/flannel. A continuación, puede configurarlo fácilmente mediante una simple request HTTP a etcd. Además, obtendrá una única networking virtualizada para todos sus contenedores (incluso ejecutándose en diferentes hosts). Esto puede ser útil si decide ampliar en el futuro.