Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #91
    danke!

    Kommentar


      #92
      Docker ist eine wahre Wonne in jeder Hinsicht!

      Als übersichtliche GUI für dein Docker empfehle ich noch den Portainer. Gibts auch als Docker-Container. (Läuft bei mir auf Port 9000)

      ​​​​​​

      Die Steuerung per SmartPhone macht ein Haus nicht zum SmartHome...

      Kommentar


        #93
        Für Portainer habe ich mich ebenfalls entschieden. Und ich muss zugeben dass nach ersten Tests das Thema IP nicht so wichtig zu sein scheint wie ich erwartet hatte.

        Sehe ich das richtig, ich muss beim erstellen des Containers entscheiden welche Ports und Volumes ich freigeben will, und kann das nicht mehr ändern wenn merke dass z.B. was fehlt? Oder was hinzukommt? Dann starte ich doch wieder vom Image, und meine anderen Änderungen sind weg.... (?)
        Wie macht ihr das mit den Änderungen in Datenbank und www Ordner? Als Volume? Wenn ich das vor dem Starten des Containers festlege (zB /var/lib), bekomme ich da nicht ein Henne-Ei Problem? Weil so ja ein Pfad des Hosts in den Container gemounted wird und nicht andersherum.

        Kommentar


          #94
          Hi

          Zitat von tobo Beitrag anzeigen
          Sehe ich das richtig, ich muss beim erstellen des Containers entscheiden welche Ports und Volumes ich freigeben will, und kann das nicht mehr ändern wenn merke dass z.B. was fehlt? Oder was hinzukommt? Dann starte ich doch wieder vom Image, und meine anderen Änderungen sind weg...
          Genau das ist ja der grosse Vorteil von Docker! Das Image ist immer der exakt gleiche Startpunkt und im Betrieb wird am Image i.d.R. nichts geändert resp. allfällige Änderungen am Image sind mit dem Start einen neuen Containers weg.


          Zitat von tobo Beitrag anzeigen
          Wie macht ihr das mit den Änderungen in Datenbank und www Ordner? Als Volume? Wenn ich das vor dem Starten des Containers festlege (zB /var/lib), bekomme ich da nicht ein Henne-Ei Problem? Weil so ja ein Pfad des Hosts in den Container gemounted wird und nicht andersherum.
          Also eigentlich ist das kein Henne-Ei-Problem sondern erfordert lediglich ein gewisses Umdenken, was den Betrieb betrifft. Das mit den eigenen IP-Adressen für jeden Container ist dabei eines der üblichen "Initialprobleme", welche bei den ersten Schritten mit Docker auftreten. Habe ich nun schon oft genau so erlebt.

          Der springende Punkt ist genau der, dass persistente Daten explizit gehandhabt werden müssen. Dabei gibt es nun zwei Möglichkeiten. Entweder es werden Host-Verzeichnisse in den Container gemountet oder es werden explizite Daten-Container verwendet, welche schlussendlich aber auch in den Container gemountet werden. Beide Varianten haben ihre Vor- und Nachteile.
          Kind regards,
          Yves

          Kommentar


            #95
            Damit ich das besser nachvollziehen kann (und vielleicht andere Docker-Neulinge), ein Beispiel, bitte korrigiert mich wenn ich was falsch verstanden habe

            das erste Mal starte ich den Container mit

            sudo docker run --name edomi -p 42900:80 -p 42901:443 -p 22222:22 -p 50000:50000/udp -p 50001:50001/udp -e KNXGATEWAY=192.168.178.4 -e KNXACTIVE=true -e HOSTIP=192.168.178.3 -d pfischi/edomi:latest


            nun beende ich den Container (Edomi herunterfahren lassen wir der Übersichtlichkeit halber hier mal weg)

            docker stop edomi

            und starte es neu

            docker start edomi

            -> Meine Änderungen (Visu, Zeitschaltuhren, ...) sind noch da. Sie sind aber nicht mehr da wenn ich den Container mit dem ersten Befehl neu erstelle. (Richtig?)

            Solange ich nichts anderes mache, bleiben meine Änderungen in einem zusätzlichen Volume (?) erhalten. Das Backup aus /var/edomi-backups kann ich bei Bedarf ja wieder einspielen. Wenn ich beim Erstellen des Containers also zusätzlich -v /var/edomi-backups /einlokalerpfad anlege bin ich safe was dass Sichern und Wiederherstellen von Edomi betrifft. Oder übersehe ich etwas?



            Zuletzt geändert von tobo; 28.03.2017, 12:10.

            Kommentar


              #96
              Du kannst unendliche Male start/stop machen, deine Daten bleiben erhalten!

              Wenn du den run-Befehl nochmal startest, wird er dir einen Fehler zurückgeben mit der Info, dass die Ports und der Name schon in Verwendung sind. Du kannst also, wenn du nicht den Container explizit löscht, den erstellten Container nicht überschreiben und somit bleiben alle Daten vorhanden.
              Die Steuerung per SmartPhone macht ein Haus nicht zum SmartHome...

              Kommentar


                #97
                Zitat von Janosch25786 Beitrag anzeigen
                Du kannst also, wenn du nicht den Container explizit löscht, den erstellten Container nicht überschreiben und somit bleiben alle Daten vorhanden.
                Darum ging es ihm aber wohl nicht sondern um den Update-Fall. Wenn es eine neue Version des Docker-Images gibt, dann muss er einen neuen Container bauen und damit wären die Daten erstmal weg. Natürlich wird das solange fehlschlagen, solange der "alte" Container nicht gelöscht wurde (oder andere Ports verwendet werden). Aber das ändert nichts an der Tatsache bzgl. den in einem neuen Container nicht vorhandenen Daten.
                Kind regards,
                Yves

                Kommentar


                  #98
                  Okay, das stimmt.

                  Bei Edomi aber nicht schlimm, Edomi kann im Container ein Update erfahren. Hatte ich auch gemacht, 1.48 installiert und direkt Update auf 1.49 gemacht.

                  Ich bin bei Updates generell vorsichtig: Wenns läuft und keine besonderen Funktionen dazu kommen, lieber laufen lassen.
                  Die Steuerung per SmartPhone macht ein Haus nicht zum SmartHome...

                  Kommentar


                    #99
                    Nutzt ihr denn die Möglichkeit andere Pfade einzubinden?

                    Edit: für Backups, Logging etc?
                    Zuletzt geändert von tobo; 28.03.2017, 19:52.

                    Kommentar


                      Zitat von tobo Beitrag anzeigen
                      Nutzt ihr denn die Möglichkeit andere Pfade einzubinden?

                      Edit: für Backups, Logging etc?
                      Ich nutze den Docker-Container noch gar nicht, da der Timberwolf-Server noch nicht verfügbar ist. Daher ist meine Edomi-Instanz aktuell ein Proxmox-Container.

                      Aber unabhängig davon: Soviel ich weiss, muss das Einbinden anderer Pfade auch vom Container unterstützt werden. pfischi: ist dem denn so?
                      Kind regards,
                      Yves

                      Kommentar


                        Zitat von starwarsfan Beitrag anzeigen

                        Ich nutze den Docker-Container noch gar nicht, da der Timberwolf-Server noch nicht verfügbar ist. Daher ist meine Edomi-Instanz aktuell ein Proxmox-Container.

                        Aber unabhängig davon: Soviel ich weiss, muss das Einbinden anderer Pfade auch vom Container unterstützt werden. pfischi: ist dem denn so?
                        Ich weiss nicht, ob ich die Frage richtig verstanden habe, aber der Container selbst bleibt "dumm". Das Mapping der Pfade geschieht in diesem Fall ausschließlich über die
                        Code:
                        docker run
                        Syntax. Der so eingebundene Host-Pfad "überlagert den Containerpfad, alle Daten die der Container dann schreibt sind dann persistent. (das gilt für andere Richtung Host nach Container genauso).

                        Ich hoffe das beantwortet die Frage

                        Edit: ich selber binde zum Beispiel zusätzlich (für meine Smarthome.py-Instanz) den Ordner "/var/log" des Containers persistent ein.


                        Gruss,

                        Stefan
                        Zuletzt geändert von pfischi; 28.03.2017, 20:30.
                        Sonos

                        Kommentar


                          Das Backup von Edomi findet ja als normaler Download zum Client hin statt.

                          Ich lade mir momentan händisch einmal die Woche ein Backup auf meinen NAS und von dort im Hintergrund auf einen Onlineserver. Reicht mir als Sicherheit, so dass ich keinen wirklichen Bedarf eines anderen Pfades aktuell habe.
                          Die Steuerung per SmartPhone macht ein Haus nicht zum SmartHome...

                          Kommentar


                            starwarsfan Du hast Recht, das wird im Dockerfile vorgegeben.

                            Ich habe gerade ein Fork erstellt und füge die Pfade hinzu. Mal schauen ob klappt.

                            Kommentar


                              Zitat von Janosch25786 Beitrag anzeigen
                              Das Backup von Edomi findet ja als normaler Download zum Client hin statt.

                              Ich lade mir momentan händisch einmal die Woche ein Backup auf meinen NAS und von dort im Hintergrund auf einen Onlineserver. Reicht mir als Sicherheit, so dass ich keinen wirklichen Bedarf eines anderen Pfades aktuell habe.
                              Ja klar das geht, aber ich würde gleich einen Cron Job anlegen der das File auf mein NAS kopiert.

                              Kommentar


                                Zitat von pfischi Beitrag anzeigen

                                Ich weiss nicht, ob ich die Frage richtig verstanden habe, aber der Container selbst bleibt "dumm". Das Mapping der Pfade geschieht in diesem Fall ausschließlich über die
                                Code:
                                docker run
                                Syntax. Der so eingebundene Host-Pfad "überlagert den Containerpfad, alle Daten die der Container dann schreibt sind dann persistent. (das gilt für andere Richtung Host nach Container genauso).

                                Ich hoffe das beantwortet die Frage

                                Edit: ich selber binde zum Beispiel zusätzlich (für meine Smarthome.py-Instanz) den Ordner "/var/log" des Containers persistent ein.


                                Gruss,

                                Stefan
                                Ich hatte das heute so probiert:

                                Code:
                                 [FONT=SFMono-Regular][SIZE=12px][COLOR=#24292e]docker run --name edomi -v /var/edomi-backups:/mnt/edomi/edomi-backup -v /usr/local/edomi/www/data/log:/mnt/logs4ls/edomi -p 42900:80 -p 42901:443 -p 22000:22 -p 50000:50000/udp -p 50001:50001/udp -e KNXGATEWAY=192.168.11.171 -e KNXACTIVE=true -e HOSTIP=192.168.11.61 -d pfischi/edomi:latest[/COLOR][/SIZE][/FONT]
                                Ich konnte aber weder Daten von der Host-Seite aus sehen, noch ein im Backup Verzeichnis abgelegtes Backup von der Edomi-Seite aus. chmod 777 hatte ich sicherheitshalber gemacht

                                Kommentar

                                Lädt...
                                X