Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Debian Docker ioBroker

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

      > Das Problem ist aber beim erstellen des Containers (docker run -d -v /share/iobroker:/opt/iobroker …) werden keine Daten vom Image auf das Hostlaufwerk kopiert, habe somit ein leeres Verzeichnis.
      Warum sollten Sie?

      Also etwas an Deinem Dockerfile fällt mir auf, wo ich nicht sicher bin, ob das so geht. Hat aber erstmal nichts mit dem kopieren zu tun.

      mkdir /opt/iobroker
      

      Sollte das nicht````
      RUN mkdir...

      
      Was dein run.cmd macht weis ich nicht. Vlt. soll er bei dir ja da Kopieren.
      
      Ich mach es immer entweder manuell aus der Container shell.
      
      

      #auf dem host

      mkdir /share
      docker run -it --rm -v /share/iobroker:/test --name testiob <mein_image> #mountet /share/iobroker als /test in den contaune

      #sollte jetzt auf dem container-prompt landen
      cp -r /opt/iobroker/ /tmp
      exit

      #sollte nun wieder auf dem hostprompt sein
      ~/var/iobroker sollte nun erstellt und gefüllt sein.</mein_image>

      
      Oder das ganze als Einzeiler:
      
      

      docker run --rm -it -v /share/iobroker:/test --name testiob <mein_image> cp -r /share/iobroker /test</mein_image>

      
      Danach kannst du deinen eigentlichen container erzeugen. Das Verzeichnis muss ja in Zukunft nicht mehr kopiert werden.z.B.
      
      

      docker run -it -p 8081:8081 -p 1885:1885 -p 2001:2001 -p 8082:8082 -p 8084:8084 --privileged -v/share/iobroker:/opt/iobroker --name iobroker --restart=always <mein_image></mein_image>

      
      Hoffe, ich hab das aus dem Gedächtnis ohne viele Fehler wiedergegeben.
      
      Die Ports und volumes musst du natürlich nach deinen Gegebenheiten anpassen.
      1 Reply Last reply Reply Quote 0
      • M
        manuel007 last edited by

        #auf dem host

        mkdir /share

        docker run -it –rm -v /share/iobroker:/test --name testiob <mein_image>#mountet /share/iobroker als /test in den contaune

        #sollte jetzt auf dem container-prompt landen

        cp -r /opt/iobroker/ /tmp

        exit

        #sollte nun wieder auf dem hostprompt sein

        ~/var/iobroker sollte nun erstellt und gefüllt sein.


        Das wird so nicht funktionieren: cp -r /opt/iobroker/ /tmp, du meintest eher cp -r /opt/iobroker/ /test ! Ja manuell kann man es so machen.

        ja kann man so machen, wollte das aber vereinfachen, mir war nicht klar ob bei Angabe von VOLUME (...) automatisch kopiert wird oder nicht, aber so wie ich es gesehen habe geht das nicht. Schade, dann muss ich das per Script machen.</mein_image>

        1 Reply Last reply Reply Quote 0
        • R
          rewenode last edited by

          > du meintest eher cp -r /opt/iobroker/ /test
          klar doch 😉

          > VOLUME (…) automatisch kopier
          Nein, beim -v wird nichts kopiert.

          > Schade, dann muss ich das per Script machen.
          Wozu das? Du willst doch nicht etwas bei jedem docker run das volume kopieren?

          Eigentlich macht man das genau ein mal und dann nie wieder. Es sei denn, man will den Rechner neu aufsetzen. Es geht ja nur darum sozusagen als Initialzündung ein /opt/iobroker im Host zu haben. Danach werden ja alle Adpterinstallationen/konfigurationen usw. in diesem host-Verzeichnis gemacht. Das willst du sicher nicht alle Nase lang überschreiben.

          1 Reply Last reply Reply Quote 0
          • M
            micha86 last edited by

            Hallo,

            wenn ich mich hier auch mal ranhängen darf.

            rewenode, könntest du das mit dem iobroker und Docker nochmals genauer erklären.

            Wie müsste ich vorgehen, damit ich meine aktuelle iobroker Installation in ein Docker Container bekomme.

            Mir wäre es erstmal auch im prinzip egal ob native docker oder mit docker-compose gearbeitet wird.

            docker-ce hab ich installiert.

            Welche weiteren Schritte wären nötig?

            Viele Grüße

            Michael

            1 Reply Last reply Reply Quote 0
            • R
              rewenode last edited by

              ` > rewenode, könntest du das mit dem iobroker und Docker nochmals genauer erklären.

              Wie müsste ich vorgehen, damit ich meine aktuelle iobroker Installation in ein Docker Container bekomme.

              Mir wäre es erstmal auch im prinzip egal ob native docker oder mit docker-compose gearbeitet wird. `

              Mach ich gerne. Ich schau, dass ich das morgen hinbekomme. Entscheidend wäre noch, auf welcher Hardware (ARM/X86) du das Ganze laufen lassen willst und ob du deine bisherigen ioBroker-Daten behalten willst.

              Falls du eine NAS einsetzt, kannst du meine Angaben nur sinngemäß verwenden. Die Dinger bringen i.d.R. eigene Docker-Admin Oberflächen mit, wo dann einige Dinge sicher anders konfiguriert werden.

              Docker oder docker-compose ist wirklich völlig egal. Docker-compose ist dann von (großem) Vorteil, wenn du mehrere container erstellen willst, die zusammenarbeiten sollen/voneinander abhängig sind. Bei mir sind das zur Zeit: ioBroker+influxDB+chronograf+telegraf+grafana+portainer. Alle in Containern auf einem rock64 mit 4GB und SSD. In jedem Fall ist das keine Entscheidung entweder/oder. Du kannst ohne Weiteres beides gleichzeitig benutzen.

              1 Reply Last reply Reply Quote 0
              • D
                dwm last edited by

                Wenn ich mich recht erinnere, steht in den Dockerfiles sowas drin:

                WORKDIR /opt/iobroker
                
                RUN npm install iobroker --unsafe-perm && echo $(hostname) > .install_host
                RUN update-rc.d iobroker.sh remove
                
                

                Das generiert im Image einen frisch installierten, "nackten" iobroker.

                Ich wollte von einem Backup starten, und hab das ERSETZT mit:

                # ... because we want to rebuild from backup
                WORKDIR /
                # Attention - docker will uncompress automatically!
                ADD total_dragon-2018_08_22-08_33_05_backupiobroker.tar.gz /
                
                

                das Backup-File muss dann natürlich im gleichen Verzeichnis wie das Dockerfile liegen, den Namen muss man anpassen oder über ENV eingeben - war's mir damals nicht wert 😉

                Generiert dann im Container im /opt/iobroker Volume die Dateien vom Backup …

                Muss man sich halt überlegen, wie mans haben will :), nur als Möglichkeit ...

                CU

                1 Reply Last reply Reply Quote 0
                • M
                  micha86 last edited by

                  Hallo,

                  super ich freu mich.

                  Ich nutze x86 Hardware bzw. VMs (zuerzeit oft debian)

                  Da ich schon eine iobroker installation auf einem Raspi habe würde ich die Konfiguration gerne übernehmen (alte log daten übernehmen wäre nicht wichtig, jedoch wäre es gut zu wissen diese übernehmen zu können 🙂 )

                  Ich möchte weiterhin auch meine History Daten in eine Datenbank schreiben, eventuell auch mehr???

                  Deine Auflistung der Tools kenne ich so gar nicht, sind aber auf den ersten Blick interessant.

                  Deswegen wäre eine Varinate mit docker-compose eine denke ich gute Wahl.

                  Eine NAS setze ich ein, jedoch nur um darauf Backups abzulegen.

                  Weißt du zufällig auch, ob duch einen Reverse Proxy Zertifikate in den einzelnen Containern überflüssig werden (ich denke hier an Let's Encrypt).

                  Vielen Dank

                  Viele Grüße

                  Michael

                  1 Reply Last reply Reply Quote 0
                  • R
                    rewenode last edited by

                    ` > Generiert dann im Container im /opt/iobroker Volume die Dateien vom Backup …

                    Muss man sich halt überlegen, wie mans haben will :), nur als Möglichkeit ... `

                    Willst du die Daten immer im Container haben? Dann sind sie natürlich hin, wenn du den Container mal löscht. Du kannst alternativ ja direkt auf dein altes /opt/iobroker mappen. Dann bleibt dein Image sauber. So mußt du es immer erneut erstellen, weil du ja sicher nicht immer dein altes Backup drin haben willst wenn du den container neu erstellst.

                    1 Reply Last reply Reply Quote 0
                    • R
                      rewenode last edited by

                      ` > Ich nutze x86 Hardware bzw. VMs (zuerzeit oft debian)

                      Da ich schon eine iobroker installation auf einem Raspi habe würde ich die Konfiguration gerne übernehmen `

                      Willst du docker-iobroker zukünftig auf der x86 Hardware einsetzen? Dann kannst du z.B. das buanet image direkt nutzen.

                      Willst du den Raspi nutzen, must du das Image auf dem Raspi neu erstellen, weil das buanet auf docker-hub für amd86 erstellt ist.

                      Beides ist möglich, eine Schritt für Schritt Anleitung unterscheidet sich aber drastisch.

                      > Weißt du zufällig auch, ob duch einen Reverse Proxy Zertifikate in den einzelnen Containern überflüssig werden (ich denke hier an Let's Encrypt).

                      Tut mir leid, da kann ich im Moment nichts zu sagen, hab mich noch nicht damit beschäftigt.

                      1 Reply Last reply Reply Quote 0
                      • M
                        micha86 last edited by

                        Hi,

                        also die Daten sollten außerhalb des Containers liegen, das gleiche dann enstprechend für eventuelle Datenbanken.So das beim starten die aktuellen Daten und Vis entsprechend immer verfügbar sind.

                        In Zukunft soll der iobroker definitiv nur noch auf x86 Hardware laufen.

                        Der Raspi soll nur noch die Schnittstellen (zigbee,RPI-RF-MOD,etc) bereitstellen.

                        1 Reply Last reply Reply Quote 0
                        • R
                          rewenode last edited by

                          > also die Daten sollten außerhalb des Containers liegen, das gleiche dann enstprechend für eventuelle Datenbanken.
                          ok.

                          Meine Bemerkung/Frage diesbezüglich sollte @dwm gehen.

                          > In Zukunft soll der iobroker definitiv nur noch auf x86 Hardware laufen.

                          Alles klar.

                          1 Reply Last reply Reply Quote 0
                          • M
                            micha86 last edited by

                            vllt noch als Hinweis.

                            Ich nutze auf meinem Raspi folgendes allinone image:

                            Homematic All-In-One mit piVCCU

                            -nodejs 8.11.1

                            -ioBroker

                            -redis

                            -piVCCU 2.31.25 mit IP-Support

                            Aus diesem Image soll dann nur die iobroker(eventuell redis) Komponente umgezogen werden. Die anderen müssen ja auf dem raspi weiterlaufen.

                            Bei einem testweisen restore auf einer neuen Hardware musste ich dann auch redis nachinstallieren, damit iobroker wieder startet.

                            Was redis nun genau macht, ist mir noch nicht so klar.

                            1 Reply Last reply Reply Quote 0
                            • R
                              rewenode last edited by

                              @micha86:

                              …-ioBroker

                              ...

                              Aus diesem Image soll dann nur die iobroker(eventuell redis) Komponente umgezogen werden. ... `

                              Das sollte kein Problem sein. sicher musst du nach dem Umzug innerhalb des Containers:

                              cd /opt/iobroker
                              sudo reinstall.sh
                              

                              machen, da evtl. die node.js Version abweicht. Außerdem musste bei mir nach Plattformwechsel immer z.B. der serialport node-modul neu kompiliert werden. Aber das ist alles beherrschbar.

                              1 Reply Last reply Reply Quote 0
                              • M
                                micha86 last edited by

                                ok,

                                ich lass mich überraschen, was dann noch alles auf mich zukommt 🙂

                                1 Reply Last reply Reply Quote 0
                                • R
                                  rewenode last edited by

                                  @micha86

                                  Ich hab da mal was zusammengeschrieben. Habe aber Hemmungen, das hier einfach einzustellen. Gibt schon genug halb-gare Sachen, die Anfänger häufig eher verwirren. Da muss ich nicht noch Öl ins Feuer..

                                  Falls gewünscht kann ich es dir aber gern als PM zur Verfügung stellen. Habe den Text im Markdown Format, falls du das lesen kannst.

                                  Gruß

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    micha86 last edited by

                                    hi,

                                    ja gerne per PM.

                                    markdown ist kein Problem. Ich schau es mir an und falls ich irgendwo wirklich nicht weiter weiß würde ich mich melden.

                                    Grüße

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      rewenode last edited by

                                      @micha86

                                      PM ist raus.

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        voltage_at last edited by

                                        Hallo Leute,

                                        ich bin neu an der Docker,IOBroker,Homematic,Grafana u.ä front! 🙂

                                        Ich habe den Forumeintrag aufmerksam gelesen jedoch fehlt mir scheinbar was.

                                        Die installation mit docker-compose find ich sehr intressant weil hier einige Komponenten angeführt sind welche ich auch gerne nutzen würde.

                                        ZU meiner Umgebung:

                                        Zotac ZBox Nano Quadcore 8GB Ram 120GB SSD mit

                                        Ubuntu 16.04 LTS Server x64

                                        Docker Host

                                        Portainer IO.

                                        Der Dockerhost funktioniert so weit.

                                        nun hab ich aber ein problem mit dem Starten des IO Broker Containers. gezogen hab ich mir das Original iobroker/iobroker:latest

                                        leider geht aus den Posts vor mir nicht hervor wie ich diesen mit ganz normalen Standardvariablen in Betrieb nehmen kann.

                                        Mein Ziel: (wie das von so machen..)

                                        Ich möchte gerne meine RaspberryMatic es was Visualisieren und eine History in der InfluxDB Speichern und mit Grafana Darstellen. (Wetterstation in unserem entfernten Schrebergarten, Heizungsdaten der Wohnung, Stromverbrauch im Garten und in der Wohnung).

                                        In diesem Sinne danke ich für euer Hilfe!

                                        LG

                                        Manuel

                                        1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer last edited by

                                          Ein kurzer Hinweis, da ich mich auch gerade damit beschäftige.

                                          Wenn man /opt/iobroker/iobroker-data in Docker als Volume anlegt, können die States/Objekte auch bei Umzug oder Austausch des Containers erhalten werden.

                                          Die eigentliche Adapter-Software fehlt dann, wird aber von ioBroker automatisch in der richtigen Version installiert.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            rewenode last edited by

                                            ` > nun hab ich aber ein problem mit dem Starten des IO Broker Containers. gezogen hab ich mir das Original iobroker/iobroker:latest

                                            leider geht aus den Posts vor mir nicht hervor wie ich diesen mit ganz normalen Standardvariablen in Betrieb nehmen kann. `

                                            Für ioBroker/influxdb/grafana sollte die yaml etwa so aussehen:

                                            ! ````
                                            version: '2'
                                            ! services:
                                            ! # Define a Telegraf service
                                            telegraf:
                                            image: telegraf:latest
                                            depends_on:
                                            - influxdb
                                            volumes:
                                            - ./tick/telegraf:/etc/telegraf #place for telegraf.conf
                                            - /var/run/docker.sock:/var/run/docker.sock #only if you use docker plugin
                                            links:
                                            - influxdb
                                            container_name: telegraf
                                            restart: always

                                            Define an InfluxDB service

                                            influxdb:
                                            image: influxdb:latest
                                            volumes:
                                            - ./tick/influxdb/data:/var/lib/influxdb #databases
                                            - ./tick/influxdb/backups:/backups
                                            ports:
                                            - "8086:8086" #http
                                            hostname: influxdb
                                            container_name: influxdb
                                            restart: always

                                            Define a Chronograf service

                                            chronograf:
                                            image: chronograf:latest
                                            depends_on:
                                            - influxdb
                                            environment:
                                            INFLUXDB_URL: http://influxdb:8086
                                            KAPACITOR_URL: http://kapacitor:9092
                                            ports:
                                            - "8888:8888"
                                            links:
                                            - influxdb
                                            #- kapacitor
                                            container_name: chronograf
                                            restart: always

                                            ! # grafana

                                            see http://docs.grafana.org/installation/docker/

                                            arm image see https://github.com/fg2it/grafana-on-raspberry/wiki

                                            grafana:
                                            user: root
                                            image: grafana/grafana
                                            #image: fg2it/grafana-armhf:v5.1.4
                                            depends_on:
                                            - influxdb
                                            env_file:
                                            - ./grafana/grafana_config.env
                                            ports:
                                            - "3000:3000"
                                            volumes:
                                            - ./grafana/data:/var/lib/grafana
                                            links:
                                            - influxdb
                                            hostname: grafana
                                            container_name: grafana
                                            restart: always

                                            #iobroker
                                            iobroker:
                                            privileged: true
                                            stdin_open: true
                                            tty: true
                                            depends_on:
                                            - influxdb
                                            ports:
                                            - "1880:1880" #node-red
                                            - "1883:1883" #mqtt
                                            - "2001:2001" #homematic
                                            - "8081:8081" #iobroker admin
                                            - "8282:8282" #flot
                                            - "8088:8088" #terminal
                                            - "8284:8284" #socketIO
                                            - "6666:6666/udp" #tuya Adapter
                                            - "8887:8887/udp" #tuya proxy
                                            - "8887:8887/tcp"
                                            - "8889:8889/udp" #tuya proxy-web
                                            - "8889:8889/tcp"
                                            volumes:
                                            - /dev:/dev
                                            - ./iobroker:/opt/iobroker
                                            - ./iob_scripte:/scripte
                                            ##ggf. host backupordner mounten (sB. ssd)
                                            #- ~/myiobbackups:/opt/iobroker/backups
                                            hostname: iobroker
                                            container_name: iobroker
                                            restart: always
                                            image: buanet/iobroker

                                            ! ````

                                            telegraf/chlonograf kannst du natürlich weglassen, wenn du sie nicht brauchst.

                                            Die Ports (besonders iobroker) musst du ggf. anpassen.

                                            telegraf: die telegraf.conf muss auf dem host vorhanden sein und das Verzeichnis entsprechend den Container gemappt werden.

                                            Bei mit: ./tick/telegraf

                                            InfluxDB: Das Database Verzeichnis sollte im Host (vorhanden) sein und natürlich ebenfalls gemountet werden.

                                            Bei mir: ./tick/influxdb/data und ./tick/influxdb/backups

                                            Grafana: die Datei grafana_config.env muss auf dem host vorhanden sein und das Verzeichnis entsprechend den Container gemappt werden.

                                            Bei mir: ./grafana/grafana_config.env

                                            Das daten Verzeichnis sollte im Host (vorhanden) sein und natürlich ebenfalls gemountet werden.

                                            Bei mir: ./grafana/data

                                            iobroker:

                                            Mapping: /dev:/dev - nur wenn du USB Sticks (Zigbee) im Container brauchst

                                            Ein host iobroker-Verzeichnis bei mir: ./iobroker (sollte hier schon beschrieben sein)

                                            ./iob_scripte empfiehlt sich für dem js2fs-Adapter (wenn du den benutzt)

                                            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

                                            827
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            44
                                            10969
                                            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