Ich habe ein Problem mit Docker-komponieren. Momentan werden meine Stapel von Containern in einem eigenen benutzerdefinierten isolierten Netzwerk erstellt, das auf Bridge basiert. Zum Beispiel bei der Ausführung docker-compose -p client1 up -d
erstellt es ein Netzwerk namens client1_default
, die Subnetz 172.18.0.9/16
hat, die ein großes Subnetz ist (/16
).So ändern Sie den Adressraum der Docker-Bridge (Subnetz)?
Ich brauche kein so großes Subnetz, /24
wäre genug.
Das Problem ist, dass mit diesem aktuellen Setup bin ich auf ca. ~ 25 Stapel von Containern begrenzt, weil dann docker (oder libnetwork) aus Adressräume zu verwenden. Ich wäre viel besser mit /24
Adressräume, denn dann wäre viel mehr verfügbar.
Die erste Frage ist: Wie kann ich Docker machen (und Docker-compose) verwenden /24
Subnetz standardmäßig ohne Bearbeitung einer der docker-compose.yml
Datei. Ich weiß, dass dies möglich ist, aber es erfordert die Bearbeitung der .yml-Datei für jeden Client oder die Erstellung einer überschreibenden .yml. Dies ist suboptimal.
Wenn das nicht direkt möglich ist, habe ich den libnetwork Code durchforstet und this gefunden (es gibt einen "Broad" und "Granular" Adressraum, und standardmäßig verwendet er den "Broad"). Wie kann ich Docker den Granular Adressraum verwenden lassen?
Ich las here dass
Zum Beispiel wenn nicht anders in der Konfiguration angegeben, libnetwork für eine Brücke Netzwerk lokalen Adressraum Adresspool aus dem Standardfordern wird, während von dem globalen Standardadressraum für ein Overlay-Netzwerk.
Meine Frage ist dann: Wie ich es in der Konfiguration angeben? Was ist die Konfiguration? Was ist die Syntax, um dieses Verhalten zu ändern?
Vielen Dank im Voraus!
Haben Sie jemals auf den Grund gegangen? Ich habe das gleiche Problem, bei dem ich mehr Kontrolle über den Pool von Subnetzen haben muss, den Docker-compose verwendet, da dies mein Corp-Netzwerk betrifft. – Schodemeiss