Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. iobroker Docker Network

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    iobroker Docker Network

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ben1983
      Ben1983 last edited by

      Hallo, ich habe schon lange einen Docker Container laufen. (Auf einer Synology NAS)
      Damals im networkmode Host gestartet…

      Ich hatte in der Vergangenheit mal kurz versucht ihn auf Bridge um zu stellen, aber dann lief irgendwie nichts mehr (irgendwie haben im Hintergrund wohl Ports gefehlt, die iobroker auch benötigt) ( weiß nicht welche genau alle)

      In ein McVlan würde ich ungern wechseln, da nun auch auf vielen Geräte bspw. Für mqtt die Host ip eingetragen ist.

      Deshalb 2 Fragen:

      1. würdet ihr empfehlen auf Bridge um zu stellen?

      2. bei einer Umstellung… muss man da für jeden benötigten Port was frei geben?
        Oder muss man nur Ports angeben, die sich außerhalb und innerhalb des Containers unterscheiden?
        also wäre das ja in meinem Fall nichts…. Da ja jetzt auch alles auf Host 1:1 läuft.

      Ach ja noch ne 3. Frage…
      Habe mir schon mal nen Stack für Portainer erstellt.
      Da müsste ich doch anstatt die angebe Host einfach nichts definieren und dann würde er doch den Container in einer bridge erstellen. Richtig?
      Und wäre eine Umstellung auf Redis empfehlenswert?
      Habe etwas schiss, dass die Daten weg sind.

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Ben1983 last edited by Codierknecht

        @ben1983
        Ich hatte meinen Container auch immer im Host-Mode.
        Macht es deutlich einfacher.
        Probleme gibt’s erst, wenn andere Dinge auf der Synology die gleichen Ports verwenden.

        Bei Bridge musst Du alle Ports benennen, die im Container erreichbar sein sollen. Ob die gleich bleiben oder nicht, spielt da keine Rolle.

        Ich würde immer Host empfehlen. Dürfte ziemlich selten sein, dass da Konflikte auftreten die sich nicht anderswo beheben lassen.

        Warum Redis?
        Hast Du so viele Objekte?

        Ben1983 1 Reply Last reply Reply Quote 0
        • Ben1983
          Ben1983 @Codierknecht last edited by

          @codierknecht war eine Idee.
          Die Frage ist, ob es mir halt wirklich viel bringt?

          Ok. Host empfohlen klingt schon mal nicht schlecht… hatte bissi rum geschaut und auch direkt bei buanet wird ja der Bridge Mode gezeigt….
          Wegen dem angeben lief dann bestimmt auch manches nicht… keine Ahnung was in alles verwendet (an Ports) 3064 oder so…

          Marc Berg 1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @Ben1983 last edited by Marc Berg

            @ben1983
            Wie so oft: "es kommt darauf an".

            Wenn du nur 1-3 Container betreibst, ist der Host Modus sicher der einfachste und man muss sich keine großen Gedanken machen. Wenn man aber mehr Container im Einsatz hat, kommt man ganz schnell mit doppelt vergebenen Ports in Konflikt und du hast kaum eine andere Wahl, als auf Bridge und MACVLAN zu wechseln.

            Ich find's ziemlich angenehm, mal schnell eine Testumgebung z.B. aus ioBroker, InfluxDB, Grafana, redis hochzufahren und nach dem Test wieder wegzuwerfen. Im Hostmodus wäre das ungleich schwerer. Zusammen mit Stacks/Compose wird dynamisch ein neues Bridge-Netzwerk erzeugt und wieder gelöscht, wenn man den Stack beendet. Das ganze läuft dann völlig isoliert und ich muss keine Angst haben, versehentlich auf die falsche Redis-DB zu schreiben. In Summe betreibe ich ca. zwanzig Container im Bridge- und drei im MACVLAN, dazu die Testinstallationen, im Hostmodus unmöglich.

            Aber wie gesagt, kleinere Umgebungen würde ich im Hostmodus betreiben, da gehst du einigen Problemen aus dem Weg.

            Ben1983 1 Reply Last reply Reply Quote 0
            • Ben1983
              Ben1983 @Marc Berg last edited by Ben1983

              @marc-berg danke für den Input.
              Was sind denn in deinen Augen „kleinere“ Umgebungen?
              Und weißt Du, welche Ports iobroker (von Haus aus) im Bridge Mode alle benötigt?

              Hast Du ein gutes Compose file, was einen ioBroker Container mit Redis erstellt?

              Ps. Ich muss aber doch auch schauen, dass ich nicht bspw. in 2 Containern (in unterschiedlichen Bridge Netzwerken) den gleich Port angebe. Oder?

              Marc Berg 1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @Ben1983 last edited by

                @ben1983 sagte in iobroker Docker Network:

                Was sind denn in deinen Augen „kleinere“ Umgebungen?

                Das musst du schon selbst wissen. Je nach eingesetzten Containern kommt man mal schneller in Portkonflikte, mal weniger schnell.

                Und weißt Du, welche Ports iobroker (von Haus aus) im Bridge Mode alle benötigt?
                Hast Du ein gutes Compose file, was einen ioBroker Container mit Redis erstellt?

                Hier mein Teststack, ob das gut ist, weiß ich nicht. Für mich funktioniert es. Dort sind auch die Ports kommentiert, die ich für ioBroker benötige. Vielleicht kannst du da ein paar Infos rausziehen.

                version: "3"
                services:
                ##### INFLUXDB2A #####
                  influxdb2a:
                    container_name: influxdb2a
                    image: influxdb:2.7-alpine
                    hostname: influxdb2a
                    restart: unless-stopped
                    networks:
                      test:
                    volumes:
                      - /opt/docker/influxdb2a:/var/lib/influxdb2
                      - /opt/docker/influxdb2a/etc:/etc/influxdb2
                      - /etc/localtime:/etc/localtime:ro
                    environment:
                      - INFLUXD_LOG_LEVEL=warn
                    ports:
                      - "8386:8086"
                ##### GRAFANA #####
                  grafana2:
                    container_name: grafana2
                    image: grafana/grafana:latest
                    hostname: grafana2
                    restart: unless-stopped
                    networks:
                      test:
                    volumes:
                      - /etc/localtime:/etc/localtime:ro
                      - /opt/docker/grafana2/etc/:/etc/grafana/
                      - /opt/docker/grafana2/var/lib/:/var/lib/grafana/
                      - /opt/docker/grafana2/var/log/:/var/log/grafana/
                    ports:
                      - "3300:3000"
                    environment:
                      - TZ=Europe/Berlin
                      - GF_AUTH_ANONYMOUS_ENABLED=true
                ##### IOBROKER2 #####
                  iobroker:
                    container_name: iobroker2
                    image: buanet/iobroker:latest-v9
                    hostname: iobroker
                    restart: unless-stopped
                    networks:
                      test:
                    volumes:
                      - /opt/docker/iobroker2:/opt/iobroker
                      - /opt/docker/userscripts:/opt/userscripts
                    ports:
                      - "8381:8081" #ioBroker
                      - "8382:8082" #Web Adapter/REST API
                      - "8091:8091" #Backitup
                      - "9081:9081" #Backitup
                      - "9082:9082" #Backitup
                      - "1380:1880" #Node-Red
                    environment:
                      - IOB_BACKITUP_EXTDB=true
                      - PACKAGES=influxdb2-cli redis-tools
                      - IOB_OBJECTSDB_TYPE=redis
                      - IOB_OBJECTSDB_HOST=redis2
                      - IOB_OBJECTSDB_PORT=6379
                      - IOB_STATESDB_TYPE=redis
                      - IOB_STATESDB_HOST=redis2
                      - IOB_STATESDB_PORT=6379
                      - DEBUG=false
                ##### INFLUXDB1 #####
                  influxdb1:
                    container_name: influxdb1
                    image: influxdb:1.8-alpine
                    hostname: influxdb1
                    restart: unless-stopped
                    networks:
                      test:
                    volumes:
                      - /opt/docker/influxdb1:/var/lib/influxdb
                      - /opt/docker/influxdb1/etc:/etc/influxdb
                      - /etc/localtime:/etc/localtime:ro
                    environment:
                      - INFLUXDB_BIND_ADDRESS=0.0.0.0:8088
                ##### REDIS #####
                  redis:
                    container_name: redis2
                    hostname: redis
                    image: redis:alpine
                    restart: unless-stopped
                    command: redis-server /usr/local/etc/redis/redis.conf
                    volumes:
                      - /opt/docker/redis2/data:/data
                      - /opt/docker/redis2/etc:/usr/local/etc/redis
                      - /etc/localtime:/etc/localtime:ro
                    networks:
                      test:
                    ports:
                     - "6380:6379"
                ##### NETWORKS #####
                networks:
                  test:
                    driver: bridge
                    name: test
                    enable_ipv6: true
                    ipam:
                      config:
                        - subnet: "fd00:1000:cccc::/64"
                          gateway: "fd00:1000:cccc::1"
                        - subnet: 192.168.3.0/24
                          gateway: 192.168.3.1
                

                Ps. Ich muss aber doch auch schauen, dass ich nicht bspw. in 2 Containern (in unterschiedlichen Bridge Netzwerken) den gleich Port angebe. Oder?

                ja, genau.

                Ben1983 1 Reply Last reply Reply Quote 0
                • Ben1983
                  Ben1983 @Marc Berg last edited by

                  @marc-berg ok. Ich schaue mal rein….
                  Wenn ich bspw. Einen Container xy mit einem zugehörigen Redis Container habe (beide in einem Stack)
                  Dann müsste ich die Redis nicht über einen Port nach außen „Mappen“, oder?
                  Wie weise ich es dann dem Container zu, der damit kommuniziert ?

                  Marc Berg 1 Reply Last reply Reply Quote 0
                  • Marc Berg
                    Marc Berg Most Active @Ben1983 last edited by

                    @ben1983 sagte in iobroker Docker Network:

                    Wie weise ich es dann dem Container zu, der damit kommuniziert ?

                    einfach den Namen des Containers bzw. den Hostnamen nehmen, steht auch so im Stack. Dort wird von ioBroker "redis2" zur Kommunikation verwendet. Ich hab den Port nur deshalb gemappt, damit ich bei Bedarf mal per "Another Redis Desktop Manager" auf die DB schauen kann. Sonst wäre das Mapping unnötig, ja.

                    Ben1983 1 Reply Last reply Reply Quote 0
                    • Ben1983
                      Ben1983 @Marc Berg last edited by

                      @marc-berg ich finde aber bei deinem Stack keinen Hostnamen „Redi2“ nur „redis“.
                      Und wenn ich den Port nicht Mappe…. Was gebe ich dann bei der Environment Variable an?

                      das sind alles informative Fragen…

                      Wichtig:
                      Würdest Du sagen wenn es läuft bleib auf Host?
                      Und redis wann sinnvoll, wann nicht?

                      Marc Berg 2 Replies Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @Ben1983 last edited by Marc Berg

                        @ben1983 sagte in iobroker Docker Network:

                        ich finde aber bei deinem Stack keinen Hostnamen „Redi2“ nur „redis“.

                        Richtig, das hatte ich mal auf "redis" umgestellt, damit ich ein Backup aus der Prod 1:1 in der Test verwenden kann. Der Container heißt "redis2" (muss ja eindeutig sein) und der Hostname, unter dem der Container angesprochen wird, heißt "redis". Durch die Isolation der beiden Bridge-Netzwerke kein Problem.

                        Ben1983 1 Reply Last reply Reply Quote 0
                        • Marc Berg
                          Marc Berg Most Active @Ben1983 last edited by

                          @ben1983 sagte in iobroker Docker Network:

                          Würdest Du sagen wenn es läuft bleib auf Host?
                          Und redis wann sinnvoll, wann nicht?

                          Ich glaube, es gab hier (auch in vielen anderen Threads) reichlich Input und Argumente pro/contra. Entscheiden musst du selbst, nur du weißt, was du in Zukunft noch vor hast. Vieles ist auch eine Glaubens-, Wissens- und "Prinzip"-Frage. Ich möchte z.B. aus Prinzip möglichst jeden Dienst in einem separaten Container laufen lassen. Weil ich denke, dass dafür Docker gemacht ist und ich weiß, dass ich die Technik weitestgehend im Griff habe.

                          Ben1983 1 Reply Last reply Reply Quote 0
                          • Ben1983
                            Ben1983 @Marc Berg last edited by Ben1983

                            @marc-berg ok.
                            Also, wenn die angegebene Ports so reichen, dann könnte ich es mal versuchen.
                            Müsste aber bei benutzen von weiteren Ports wie bspw. 1883 oder 8883 die Mappen. Richtig?
                            Da wäre ja wieder Host einfacher, das es mir einfach egal sein kann.

                            Vielleicht schritt für schritt und erst mal abwägen, ob Redis überhaupt interessant für mich ist.
                            Vielleicht iobroker wegen Ports wie mqtt, Webserver, vis usw. Einfach erst mal im Host Mode lassen. Ist denn auf redis einfach umzustellen und das läuft stabil und man kann es beruhigt laufen lassen? Und bringt es wesentlich mehr Performance?
                            Aktuell läuft der Vontainer wie gesagt auf der Synology und ich habe 2,5GB von 18 aus dem RAM genutzt (gesamtes System)

                            1 Reply Last reply Reply Quote 0
                            • Ben1983
                              Ben1983 @Marc Berg last edited by

                              @marc-berg so ganz habe ich das Konzept mit Container, Container_Name und hostname noch nicht geschnallt.

                              Könnte ich in meinem Stack, der einen iobroker Container im Host Mode erzeugt eine Redis hinzufügen?
                              Wäre es da sinnvoll dort keinen netzwrrkmode anzugeben und somit Bridge zu erzeugen?
                              Dann müsste ich dort den containernsme und den Port der Redis angeben?

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              883
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

                              3
                              13
                              330
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo