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. ioBroker Allgemein
  4. Debian Docker ioBroker

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    828

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Debian Docker ioBroker

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
44 Beiträge 7 Kommentatoren 12.0k Aufrufe 2 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.
  • R Offline
    R Offline
    rewenode
    schrieb am zuletzt editiert von
    #8
    /pool0/docker/iobroker existiert. Was genau heisst "inkl. aller Unterverzeichnisse." ?
    

    Also ich bin jetzt noch nicht allzu lange mit ioB am Gange, deshalb kann es durchaus sein, das mein Halbwissen noch größer als mein Wissen ist;-)

    Aber was ich so gesehen habe, legt ioB seine Bewegungsdaten (Scripte/logs/etc) in verschiedenen Verzeichnissen ab, die alle in /opt/iobroker oder tiefer innerhalb /opt/iobroker liegen. Deshalb kann ich unter Docker nicht einfach ein volume mouten, wo nur die Bewegungsdaten drin sind, sondern muss faktisch das komplette /opt/iobroker in den Container mounten. Da nimmt er dann aber auch alle Nichtbewegungsaden (module, adapter etc. her.) also fast alles. Deshalb muss in dem gemounteten Volume auch faktisch erstmal eine komplette ioB Installation sein, damit dort alle Unterverzeichnisse, module etc vorhanden sind.

    Der docker-container ist dann eigentlich nur noch ne leere Hülle, (fast)alle eigentlichen Daten befinden sich dann im gemounteten hostLW. Nicht schön, aber wohl nicht zu ändern, wenn man die Bewegungsdaten auf dem host haben will.

    Falls man keine ioB Installation hat, die man dann dem container zur Verfügung stellen kann, sollte man auch folgendermaßen vorgehen können:

    1. erstelle einen container mit einem temporären Verzeichnis deiner Wahl.

    z.B. –volume=~/tmp/iobroker:/tmp \ # ~/tmp/iobroker muss vorhanden sein

    2. kopiere innerhalb des containers das komplette /opt/iobroker nach /tmp

    $ docker exec -it iobroker /bin/bash # auf dem host

    $ cp -r /opt/iobroker/ /tmp # innerhalb des containers

    3. stoppe den container und lösche ihn

    Auf dem host sollte sich in ~/tmp ein Verzeichnis iobroker mit allen Unterverzeichnissen befinden - quasi eine komplette ioB Installation.

    4. kopiere das Unterverzeichnis iobroker aus ~/tmp inkl aller Unterverzeichnisse an die Stelle, die du als Volume monuten willst.

    Bei dir wohl: /pool0/docker/

    5. Erstelle einen neuen container, diesmal mit deinem Wunsch-Mount.

    Die Punkte 1 - 5 hab ich nicht getestet, weil ich eine vorhandene ioB Installation 'gedockert' habe.

    Eigentlich sollte es auch ohne das hostLW gehen (habe noch nicht getestet), aber dann sind halt auch die Bewegungsdaten innerhalb des containers.

    Und nach docker rm wars das;-)

    Ich kann damit ganz gut leben. Man hat damit eigentlich immer seine aktuellen Daten im Container, auch wenn man mal eben (z.B. um nodejs v10 zu testen) ein neues image kreiert.

    Und was Docker-compose betrifft, das lernst du spätestens dann zu schätzen, wenn du mehrere container erzeugen willst, die voneinander abhängig sind.

    Bei mir sind das: ioBroker, influxdb, chronograf, telegraf und grafana

    Da reicht dann ein docker-compose up und alle container sind erstellt und arbeiten im gleichen netz. Und mit Docker-compose down sind alle container sauber gelöscht.

    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      chris1284
      schrieb am zuletzt editiert von
      #9

      Den Weg mit dem kopieren der Files habe ich bei dem athalis Image erfolgreich genutzt.

      Jedoch weder beim selbst erstellten noch beim buanet image bekommt man den container in einen Status das man überhaupt mit der Console drauf kann.

      Der Container hängt in einer rebootschleife laut Portainer

      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        rewenode
        schrieb am zuletzt editiert von
        #10

        > Der Container hängt in einer rebootschleife laut Portainer

        Sry, mit Portainer kenne ich mich überhaupt nicht aus. Auf der normalen Debian Konsole hab ich es grad getestet:

        (~/mytest muss vorhanden sein)

        3999_docker_iob_test.png

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          chris1284
          schrieb am zuletzt editiert von
          #11

          Nach der minimal-konfig deines Screenshots lässt sich auch mit dem selbst erstellten Image ein Container erzeigen und /opt/iobroker "rauskopieren"

          ~~![](</s><URL url=)<link_text text="download/file.php?id=36461&mode=view">https://forum.iobroker.net/download/file.php?id=36461&mode=view</link_text>" />

          lege ich dann einen neuen Container an und mappe eben dieses kopierte Verzeichnis dort hinein füllt sich das log wieder mit diesen Meldungen der Beiträge vorher und ein Webinterface ist nicht erreichbar.~~ 9508_bildschirmfoto_vom_2018-11-01_19-07-20.png

          1 Antwort Letzte Antwort
          0
          • C Offline
            C Offline
            chris1284
            schrieb am zuletzt editiert von
            #12

            ch glaube es lag daran dass ich die skripte im kopierten ordner noch einmal ausführbar machen musste (chmod +x).

            Danach habe ich den Container nochmal mit -it statt -d angelegt und sieh da ich kann auf das Webinterace

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              rewenode
              schrieb am zuletzt editiert von
              #13

              > Danach habe ich den Container nochmal mit -it statt -d angelegt und sieh da ich kann auf das Webinterace

              Ja, beim Live Container ganz wichtig. Das entspricht dem:

                  stdin_open: true
                  tty: true
              
              

              in meiner .yml

              Sonst will er nicht.

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                manuel007
                schrieb am zuletzt editiert von
                #14

                Hallo,

                ich hatte auch versucht selber ein Image zu erstellen und habe Probleme mit VOLUME !

                So sieht mein Dockerfile aus:

                –----------------------------------------------------

                From debian:latest

                Run apt update && apt upgrade -y

                Run apt install sudo curl git ....

                mkdir /opt/iobroker

                workdir /opt/iobroker

                run npm install iobroker ...

                Expose 8081

                Volume /opt/iobroker

                Cmd["run.sh"]

                –----------------------------------------------------

                Image wird sauber erstellt.

                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.

                Gibts da eine Möglichkeit das dies beim Erstellen des Containers automatisch funktioniert ? Habe ich was vergessen ?

                1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  rewenode
                  schrieb am zuletzt editiert von
                  #15

                  > 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 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    manuel007
                    schrieb am zuletzt editiert von
                    #16

                    #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 Antwort Letzte Antwort
                    0
                    • R Offline
                      R Offline
                      rewenode
                      schrieb am zuletzt editiert von
                      #17

                      > 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 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        micha86
                        schrieb am zuletzt editiert von
                        #18

                        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 Antwort Letzte Antwort
                        0
                        • R Offline
                          R Offline
                          rewenode
                          schrieb am zuletzt editiert von
                          #19

                          ` > 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 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            dwm
                            schrieb am zuletzt editiert von
                            #20

                            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 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              micha86
                              schrieb am zuletzt editiert von
                              #21

                              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 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                rewenode
                                schrieb am zuletzt editiert von
                                #22

                                ` > 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 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  rewenode
                                  schrieb am zuletzt editiert von
                                  #23

                                  ` > 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 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    micha86
                                    schrieb am zuletzt editiert von
                                    #24

                                    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 Antwort Letzte Antwort
                                    0
                                    • R Offline
                                      R Offline
                                      rewenode
                                      schrieb am zuletzt editiert von
                                      #25

                                      > 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 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        micha86
                                        schrieb am zuletzt editiert von
                                        #26

                                        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 Antwort Letzte Antwort
                                        0
                                        • R Offline
                                          R Offline
                                          rewenode
                                          schrieb am zuletzt editiert von
                                          #27

                                          @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 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          550

                                          Online

                                          32.6k

                                          Benutzer

                                          82.1k

                                          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