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.
    • 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

                        491
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        3
                        13
                        327
                        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