Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Docker
  5. Docker Compose, 2 Container im selben Netzwerk

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    658

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Docker Compose, 2 Container im selben Netzwerk

Geplant Angeheftet Gesperrt Verschoben Docker
14 Beiträge 4 Kommentatoren 1.1k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W wusa

    Hallo zusammen,

    ich schaffe es leider nicht, 2 Docker Container im selben Netzwerk anzulegen.

    Wie folgt bin ich vorgegangen:
    Ich hab ein Netzwerk angelegt mit dem Namen docker-lan
    73003438-8253-4dc8-bb32-b124ee1a4f50-grafik.png

    Diese Netzwerk will ich jetzt für 2 Container verwenden.
    Getestet habe ich es erstmal nur mit einem Container mit der Compose wie folgt:

    services:
      wireguard:
        image: lscr.io/linuxserver/wireguard:latest
        container_name: wireguard
        cap_add:
          - NET_ADMIN
          - SYS_MODULE #optional
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Europe/Berlin
        networks:
          - docker-lan
         
        volumes:
          - /root/docker/wg-s2s/config:/config
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
        restart: unless-stopped
    
    
    networks:
      docker-lan:
    
    

    Das funktioiert jetzt allerdings nicht.
    Der Container sollte eine IP aus dem Bereich 172.20.0.0/16 bekommen. (Ich weiß, es ist nicht normal ein /16 Adresse mit so vielen IPs zu nehmen. Sobald es aber läuft werde ich mich anderweitig darum kümmern).

    Das Netzwerk wird allerdings nicht übernommen und es wird ein neues Netzwerk "eröffnet".
    c762c1c4-e377-48bc-8cd5-28723419aa00-grafik.png

    Warum ist das so? Habe ich etwas falsch gemacht oder wie sollte es richtig gemacht werden?

    Danke

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von OliverIO
    #5

    @wusa

    das was @Marc-Berg sagt ist richtig.
    Wahrscheinlich musst du das Netz auch als MACVLAN Netz anlegen,
    da die Netzwerkkarte ja so erstmal nur auf die Pakete horcht, die für den Rechner bestimmt sind. Im Bridge und Hostmode haben Container ja immer die gleiche IP-Adresse wie der Host, nur die Daten der Ports werden umgeroutet. Im bridge und hostmode vergibt docker auch immer ip-adressen aus seinem eigenen privaten IP-Netz, was aber auch nur auf diesem Rechner gilt. Die 172er IP-Adresse hat mich zu begin etwas verwirrt, da docker ja den selben Netzbereich verwendet.

    Erst mit dem MACVLAN-Treiber werden auch die Pakete anderer IP-Adressen mitgehorcht und dann an den korrekten Container weitergeleitet.

    https://docs.docker.com/engine/network/drivers/macvlan/

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    W 1 Antwort Letzte Antwort
    0
    • Marc BergM Marc Berg

      @wusa

      IP-Address: 172.18.0.2
      

      ist falsch.

      Richtig:

      ipv4_address: 172.18.0.2
      
      W Offline
      W Offline
      wusa
      schrieb am zuletzt editiert von
      #6

      @marc-berg

      services:
        wireguard:
          image: lscr.io/linuxserver/wireguard:latest
          container_name: wireguard
          networks:
            RZ-net:
              ipv4_address: 172.18.0.2
          cap_add:
            - NET_ADMIN
            - SYS_MODULE #optional
          environment:
            - PUID=1000
            - PGID=1000
            - TZ=Europe/Berlin
           
          volumes:
            - /root/docker/wg-s2s/config:/config
      
          sysctls:
            - net.ipv4.conf.all.src_valid_mark=1
          restart: unless-stopped
      
      networks:
        RZ-net:
          external: true
      
      

      Auch hier erscheint ein Fehler.

      Address already in use.
      

      5caf3271-21d5-411d-8b39-8878a5b0b165-grafik.png

      Es sind alle Container aus. Heißt die Adresse ist definitiv nicht in Benutzung.

      1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @wusa

        das was @Marc-Berg sagt ist richtig.
        Wahrscheinlich musst du das Netz auch als MACVLAN Netz anlegen,
        da die Netzwerkkarte ja so erstmal nur auf die Pakete horcht, die für den Rechner bestimmt sind. Im Bridge und Hostmode haben Container ja immer die gleiche IP-Adresse wie der Host, nur die Daten der Ports werden umgeroutet. Im bridge und hostmode vergibt docker auch immer ip-adressen aus seinem eigenen privaten IP-Netz, was aber auch nur auf diesem Rechner gilt. Die 172er IP-Adresse hat mich zu begin etwas verwirrt, da docker ja den selben Netzbereich verwendet.

        Erst mit dem MACVLAN-Treiber werden auch die Pakete anderer IP-Adressen mitgehorcht und dann an den korrekten Container weitergeleitet.

        https://docs.docker.com/engine/network/drivers/macvlan/

        W Offline
        W Offline
        wusa
        schrieb am zuletzt editiert von
        #7

        @oliverio

        Wenn ich allerdings mit diesem Parameter den Container starte:

            networks:
              - RZ-net
        

        und

        networks:
          RZ-net:
            external: true
        

        Haben bei mir die Container aus dem Adresspool eine IP aus dem Pool.

        OliverIOO 1 Antwort Letzte Antwort
        0
        • W wusa

          @oliverio

          Wenn ich allerdings mit diesem Parameter den Container starte:

              networks:
                - RZ-net
          

          und

          networks:
            RZ-net:
              external: true
          

          Haben bei mir die Container aus dem Adresspool eine IP aus dem Pool.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #8

          @wusa sagte in Docker Compose, 2 Container im selben Netzwerk:

          Haben bei mir die Container aus dem Adresspool eine IP aus dem Pool

          ich hatte bzgl macvlan meinen post nochmal aktualisiert. du warst schneller

          ist dein router tatsächlich auf ein 172er netz eingestellt?
          nicht das das auch schwierigkeiten macht, das docker sich bereits einen 172er netzbereich reserviert hat und daher eine ip daraus nicht herausgibt.

          mein bridge ist bspw auf
          172.17.0.0/16
          eingestellt. da get der bereich von
          172.17.0.0 bis 172.17.255.254
          der nicht durch andere netze verwendet werden darf

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          W 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @wusa sagte in Docker Compose, 2 Container im selben Netzwerk:

            Haben bei mir die Container aus dem Adresspool eine IP aus dem Pool

            ich hatte bzgl macvlan meinen post nochmal aktualisiert. du warst schneller

            ist dein router tatsächlich auf ein 172er netz eingestellt?
            nicht das das auch schwierigkeiten macht, das docker sich bereits einen 172er netzbereich reserviert hat und daher eine ip daraus nicht herausgibt.

            mein bridge ist bspw auf
            172.17.0.0/16
            eingestellt. da get der bereich von
            172.17.0.0 bis 172.17.255.254
            der nicht durch andere netze verwendet werden darf

            W Offline
            W Offline
            wusa
            schrieb am zuletzt editiert von wusa
            #9

            @oliverio

            Richtig, ich habe mich im ersten Moment auch an das Docker Netzwerk gerichtet.

            Die 172.18.0.0/16 ist von meinem Router richtig durchgeroutet und auch nur in dem Docker Netzwerk in Verwendung, sonst nirgends in meinem Netzwerk.

            Starte ich die Container nur mit dem

            networks:
             - RZ-net
            
            

            Werden die IPs richtig vergeben. Ich würden nur gerne aus dem Bereich eine feste IP Adresse vergeben, damit der Container auch immer die selbe IP hat.
            Daher auch die 2 excluded IPs.
            Vielleicht ist das auch grundsätzlich falsch. Ich weiß es leider nicht.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • W wusa

              @oliverio

              Richtig, ich habe mich im ersten Moment auch an das Docker Netzwerk gerichtet.

              Die 172.18.0.0/16 ist von meinem Router richtig durchgeroutet und auch nur in dem Docker Netzwerk in Verwendung, sonst nirgends in meinem Netzwerk.

              Starte ich die Container nur mit dem

              networks:
               - RZ-net
              
              

              Werden die IPs richtig vergeben. Ich würden nur gerne aus dem Bereich eine feste IP Adresse vergeben, damit der Container auch immer die selbe IP hat.
              Daher auch die 2 excluded IPs.
              Vielleicht ist das auch grundsätzlich falsch. Ich weiß es leider nicht.

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #10

              @wusa
              das geht so nicht.
              aber docker definiert intern die hostnames.
              daher, alle container die dem gleichen netzwerk zugeordnet sind können den jeweiligen anderen container unter dem servicenamen erreichen. also in deinem fall "wireguard" Zeile 2 von dem docker compose.
              Alternativ kann man mit konfiguration den hostname auch vorgeben
              https://docs.docker.com/reference/compose-file/services/#hostname

              wenn du ein LAN weite eindeutige IP-Adresse haben willst, dann:

              • hostmode: der container erhält die ip adresse deines hosts. du kannst aber keine ports mappen, aber broadcast funktioniert (weiß nicht ob das bei wireguard relevant ist)
              • bridge mode (standard): der container erhält die ip adresse deines hosts. es werden aber nur die angegebenen ports gemappt. broadcast services gehen hier gar nicht
              • macvlan: wie oben beschrieben. neues netzwerk mit macvlan treiber muss im docker angelegt werden. netzbereich ist dann überlappend zu dem deines LANs. Der DHCP darf dann auch keine dieser IP-Adressen vergeben. ohne Angabe von IP vergibt docker aus dem angegebenen Netzbereich dann eine und mit Angabe, dann feste IP.
              • ipvlan: hab ich mich ehrlich noch nie mit beschäftigt. ist ähnlich macvlan. beide haben im Vergleich wohl vor und Nachteile.

              der rechner auf dem bei mir docker läuft, hat eine feste ip, so kann ich im router easy weiterleiten. allerdings verwende ich für diese dinge lieber macvlan um den netzwerkverkehr auch wirklich containerweise zu kapseln.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              W 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @wusa
                das geht so nicht.
                aber docker definiert intern die hostnames.
                daher, alle container die dem gleichen netzwerk zugeordnet sind können den jeweiligen anderen container unter dem servicenamen erreichen. also in deinem fall "wireguard" Zeile 2 von dem docker compose.
                Alternativ kann man mit konfiguration den hostname auch vorgeben
                https://docs.docker.com/reference/compose-file/services/#hostname

                wenn du ein LAN weite eindeutige IP-Adresse haben willst, dann:

                • hostmode: der container erhält die ip adresse deines hosts. du kannst aber keine ports mappen, aber broadcast funktioniert (weiß nicht ob das bei wireguard relevant ist)
                • bridge mode (standard): der container erhält die ip adresse deines hosts. es werden aber nur die angegebenen ports gemappt. broadcast services gehen hier gar nicht
                • macvlan: wie oben beschrieben. neues netzwerk mit macvlan treiber muss im docker angelegt werden. netzbereich ist dann überlappend zu dem deines LANs. Der DHCP darf dann auch keine dieser IP-Adressen vergeben. ohne Angabe von IP vergibt docker aus dem angegebenen Netzbereich dann eine und mit Angabe, dann feste IP.
                • ipvlan: hab ich mich ehrlich noch nie mit beschäftigt. ist ähnlich macvlan. beide haben im Vergleich wohl vor und Nachteile.

                der rechner auf dem bei mir docker läuft, hat eine feste ip, so kann ich im router easy weiterleiten. allerdings verwende ich für diese dinge lieber macvlan um den netzwerkverkehr auch wirklich containerweise zu kapseln.

                W Offline
                W Offline
                wusa
                schrieb am zuletzt editiert von
                #11

                @oliverio
                Aber das geht ja jetzt auch schon.
                Wenn ich einfach nur die Docker Container starte, dann erhalte ich zb. für Wireguard die IP 172.18.0.2
                Wenn ich jetzt noch einen anderen Docker Container starte, dann erhalte ich die IP 172.18.0.3

                Jetzt kann ich per IP Adresse 172.18.0.3, da sich die Container im selben Netzwerk befinden, auf den Dienst zugreifen.

                Starte ich jetzt allerdings die Container neu, dann kann es sein, dass ich eine andere IP Adresse für die Container erhalte.
                Also könnte es sein, dass ich für Wireguard dann die IP 172.18.0.5 erhalte.

                OliverIOO 1 Antwort Letzte Antwort
                0
                • W wusa

                  @oliverio
                  Aber das geht ja jetzt auch schon.
                  Wenn ich einfach nur die Docker Container starte, dann erhalte ich zb. für Wireguard die IP 172.18.0.2
                  Wenn ich jetzt noch einen anderen Docker Container starte, dann erhalte ich die IP 172.18.0.3

                  Jetzt kann ich per IP Adresse 172.18.0.3, da sich die Container im selben Netzwerk befinden, auf den Dienst zugreifen.

                  Starte ich jetzt allerdings die Container neu, dann kann es sein, dass ich eine andere IP Adresse für die Container erhalte.
                  Also könnte es sein, dass ich für Wireguard dann die IP 172.18.0.5 erhalte.

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von OliverIO
                  #12

                  @wusa

                  wenn es jetzt schon tut, wo ist dann die frage?
                  ich habe dir alle möglichkeiten aufgeschrieben die ich kenne.
                  docker vergibt die ip aus seinem ip bereich. da wirst du auch nicht rumfummeln können. ansonsten ist es tricksen.
                  ob das gut ist, das dein lan auf dem selben bereich läuft, keine ahnung. überblicke aber deine konfiguration auch nicht ganz.

                  hier ist die dokumentation zur angabe einer ip adresse
                  https://docs.docker.com/reference/compose-file/services/#ipv4_address-ipv6_address

                  evtl ist dieser satz relevant

                  The corresponding network configuration in the top-level networks section must have an ipam attribute with subnet configurations covering each static address.
                  

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  W 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @wusa

                    wenn es jetzt schon tut, wo ist dann die frage?
                    ich habe dir alle möglichkeiten aufgeschrieben die ich kenne.
                    docker vergibt die ip aus seinem ip bereich. da wirst du auch nicht rumfummeln können. ansonsten ist es tricksen.
                    ob das gut ist, das dein lan auf dem selben bereich läuft, keine ahnung. überblicke aber deine konfiguration auch nicht ganz.

                    hier ist die dokumentation zur angabe einer ip adresse
                    https://docs.docker.com/reference/compose-file/services/#ipv4_address-ipv6_address

                    evtl ist dieser satz relevant

                    The corresponding network configuration in the top-level networks section must have an ipam attribute with subnet configurations covering each static address.
                    
                    W Offline
                    W Offline
                    wusa
                    schrieb am zuletzt editiert von
                    #13

                    @oliverio
                    Ich will eigentlich nur eine feste IP aus dem Bereich 172.18.0.0/16 selbst vergeben, dass die IP immer gleich bleibt.

                    W 1 Antwort Letzte Antwort
                    0
                    • W wusa

                      @oliverio
                      Ich will eigentlich nur eine feste IP aus dem Bereich 172.18.0.0/16 selbst vergeben, dass die IP immer gleich bleibt.

                      W Offline
                      W Offline
                      wusa
                      schrieb am zuletzt editiert von wusa
                      #14

                      Ich habe jetzt eine Lösung und vermutlich das Problem gefunden.

                      services:
                        wireguard:
                          image: lscr.io/linuxserver/wireguard:latest
                          container_name: wireguard
                          networks:
                            RZ-net:
                              ipv4_address: 172.18.0.2
                          cap_add:
                            - NET_ADMIN
                            - SYS_MODULE #optional
                          environment:
                            - PUID=1000
                            - PGID=1000
                            - TZ=Europe/Berlin
                           
                          volumes:
                            - /root/docker/wg-s2s/config:/config
                      
                          sysctls:
                            - net.ipv4.conf.all.src_valid_mark=1
                          restart: unless-stopped
                      
                      networks:
                        RZ-net:
                          external: true
                      
                      

                      Hauptproblem bei der Vergabe der festen IP Adresse ist das angelegte Netzwerk.
                      Es darf nicht mit /16 angelegt werden. Hier ist vermutlich etwas im Docker-Hintergrund was hier blockiert.
                      Legt man die Adresse mit /24 an, kann man in der Compose Datei die Adresse auch fest vergeben.

                      e3536d27-9c97-4719-acb6-81d100ef2dbb-grafik.png

                      d96374d8-1882-4bac-af70-e9858c8a66b6-grafik.png

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      478

                      Online

                      32.5k

                      Benutzer

                      81.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe