Networks: Warum bekommen Container IP-Adressen aus verschiedenen Bereichen?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Kachelkaiser

Benutzer
Contributor
Sehr erfahren
Registriert
22. Feb. 2018
Beiträge
3.444
Reaktionspunkte
1.775
Punkte
244
Ich verzeifel etwas mit der Netzwerkverteilung unter Docker.

Bisher war es immer so, dass, wenn ich Container über Stacks (docker-compose) erstellte, diese eine IP-Adresse aus dem Bridge Netzwerk bekommen haben z.B. 172.21.0.0/16

Jetzt ist es aber so, dass ich vereinzelt Container habe, die plötzlich IP-Adressen wie z.B. 192.168.132.0/20 bekommen. Ich habe festgestellt, dass Container mit diesen Adressen nicht auf andere Anwendungen in meinem Netz oder Internet zugreifen können.

Nach Lektüre verschiedener Seiten habe ich herausgefunden, dass die Adressen 192.168.x.x erst verwendet werden wenn der Bereich 172.x.x.x belegt ist. Ich denke, das ist bei mir aber nicht der Fall.

Hier ein Beispiel meiner Netzwerke und Container

1770048711099.png

1770048871303.png

Wie ihr seht, bekommen die Container von joplin, jdownloader und homarr Adresse aus der 192.168.x.x Range. Unter homarr komme ich damit z.B. nicht auf Adguard Home.

Joplin lässt sich gar nicht aufrufen

1770048994567.png

Lange Rede kurzer Sinn, wie bekomme ich es wieder hin dass bei der Erstellung der Container die Range 172.x.x.x benutzt wird?
 
Ich hatte mich auch darüber gewundert. Abgeholfen habe ich mir mit einem eingenen Netzwerk für die meisten Container, welches ich explizit angebe.

Einmalig erstellen:
Bash:
docker network create \
   --driver bridge \
   --subnet 172.18.0.0/16 \
   default_bridge

docker-compose.yaml:
YAML:
…

networks:
  default:
    name: default_bridge
    external: true
 
Vielen Dank

und den networks part schreibst du dann in jede compose oder?
 
Perfekt hat funktioniert+

Joplin bringt zwar immer noch den Fehler, aber das ist bestimmt ein anderes Problem. Lief eh nicht so der Server, dann wird er jetzt einfach neu aufgesetzt ;-)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ctrlaltdelete
Guck Mal hier https://blog.joelbuckley.com.au/2022/12/til-docker-default-address-pools. Man kann das eigentlich konfigurieren. Auch wie viele Container pro Netz es sein könnten. Wenn man das kleiner einstellt, dann passen auch mehr Services in die Range. Nur der Synology Pfad stimmt da nicht mehr. Da musst du Docker durch ContainerManager ersetzen.

Edit: auf meinem Docker Host wo viele Container laufen sieht das so aus:
Code:
{
  "default-address-pools":[
    {"base":"172.30.0.0/16","size":28},
    {"base":"172.31.0.0/16","size":28},
    {"base":"10.10.0.0/16","size":28}
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "1"
  }
}
 
Höchstwahrscheinlich liegt hier die Default-Konfiguration vor:
Code:
{
  "default-address-pools": [
    {"base":"172.17.0.0/16","size":16},
    {"base":"172.18.0.0/16","size":16},
    {"base":"172.19.0.0/16","size":16},
    {"base":"172.20.0.0/14","size":16},
    {"base":"172.24.0.0/14","size":16},
    {"base":"172.28.0.0/14","size":16},
    {"base":"192.168.0.0/16","size":20}
  ]
}
Quelle: https://docs.docker.com/engine/network/#automatic-subnet-allocation

Base: CIDR der Range, Size: Bits eines Subnets innerhalb der CIDR Range.
Sowohl 16 Bit, als auch 20 Bit Subnetze sind unnötig Größ (65536 ips vs 4096 ips).

Die Werte von @johndoe sehen für ein Homelab deutlich(!) sinnvoller aus :)
 
  • Like
Reaktionen: Kachelkaiser
Das könnte natürlich sein, das sieht so aus wie bei mir. Ich glaube ich muss mir das mal in Ruhe zu Gemüte führen. Vorerst nehme ich mal den Workaround von @geimist
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat