Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Docker Container über Script täglich neu starten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Docker Container über Script täglich neu starten

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Matze1909 @haselchen last edited by

      @haselchen und @oliverio
      vielen Dank für eure Antworten.
      Ich meine, dass der Container nicht auf unhealthy geht. Ich werde aber das nächste mal, wenn die url des PSA Car Controllers nicht erreichbar ist, den Status prüfen und mir den Log anschauen.
      Ich vermute, dass es an der "mittelmäßigen" Api zu PSA/Stellentis liegt, dass hier hin und wieder die Verbindung verloren geht und keine Daten abgefragt/geliefert werden. Ich bin mir aber nicht sicher. Vielleicht helfen mir die Daten aus dem Log weiter.
      Auf jeden Fall hat es immer sofort funktioniert, wenn der Container neu gestartet wurde. Daher dachte ich, dass dies die Lösung ist.
      Ich melde mich wieder, wenn ich Neuigkeiten haben.
      Dennoch wäre ich daran interessiert, ob es eine Möglichkeit gibt über ein Script einen "anderen" Container neu zu starten. Es müsste auch gar nicht zwingend täglich sein. Mir würde auch "bei Bedarf" reichen. Ich würde dann das Script mit meiner Alexa verbinden und immer wenn die URL nicht erreichbar ist, über einen Sprachbefehl den Container neu starten. Das geht viel schneller, als die Anmeldung bei Portainer, Auswahl des Containers, Neustart etc..

      Vielen Dank und viele Grüße
      Matze

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

        @matze1909 sagte in Docker Container über Script täglich neu starten:

        Dennoch wäre ich daran interessiert, ob es eine Möglichkeit gibt über ein Script einen "anderen" Container neu zu starten.

        Das geht, aber natürlich nur, indem man die Sicherheits-/Isolationsfunktionen abschaltet.

        1. /var/run/docker.sock in den ioB-Container durchreichen (wie ein Volume)
        2. Das Node-Module "dockerode" in den Javascript-Adapter einbinden
        3. Beispiel-Skript:
        var Docker = require('dockerode');
        var docker = new Docker({socketPath: '/var/run/docker.sock'});
        
        var container = docker.getContainer('grafana2');
        
        container.stop((err, data) => {
          if (err) {
            console.error('Stoppen fehlgeschlagen:', err);
            return;
          }
          console.log('Container gestoppt');
          
          setTimeout(() => {
            container.start((startErr, startData) => {
              if (startErr) {
                console.error('Starten fehlgeschlagen:', startErr);
                return;
              }
              console.log('Container gestartet');
            });
          }, 2000);  // 2 Sekunden Pause zwischen Stop und Start
        });
        
        

        Alternativ zum Mappen des Sockets kann man auch über die API auf den Docker-Host zugreifen:

        var docker = new Docker({host: 'http://<dockerhost>', port: <dockerport>});
        

        Dann musst du aber den API-Zugriff zulassen, was eine noch größere Lücke darstellt.

        M 1 Reply Last reply Reply Quote 1
        • OliverIO
          OliverIO @Matze1909 last edited by OliverIO

          @matze1909
          Dein portainer hat ebenfalls eine api
          Absicherung läuft über api Token
          https://www.reddit.com/r/portainer/comments/rsbvsv/api_endpoint_to_recreate_and_restart_container/?rdt=58062

          Oder als NPM Paket
          https://www.npmjs.com/package/portainer-api-client

          1 Reply Last reply Reply Quote 1
          • M
            Matze1909 @Marc Berg last edited by

            @marc-berg
            Danke für eure Nachrichten und die Mühe.
            Das klingt so, als sollte man es lieber lassen.
            Gut, dass ihr Profis so etwas dazu schreibt. Sonst läuft man Gefahr so etwas zu machen.

            Viele liebe Grüße
            Matze

            OliverIO Codierknecht 2 Replies Last reply Reply Quote 0
            • OliverIO
              OliverIO @Matze1909 last edited by

              @matze1909 sagte in Docker Container über Script täglich neu starten:

              Das klingt so, als sollte man es lieber lassen

              eigentlich nicht.
              das ist ja bei dir im LAN
              wenn da niemand ist der APIs ausnutzen kann
              oder das dann auch macht ist ja keine Gefahr.
              Wenn dann startet er halt den container neu.
              Falls mehr sicherheit notwendig ist, dann schränkt man die api bspw per reverseproxy soweit ein, das wirklich nur das geht was man wirklich will.

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

                @matze1909

                @oliverio sagte in Docker Container über Script täglich neu starten:

                eigentlich nicht.
                das ist ja bei dir im LAN
                wenn da niemand ist der APIs ausnutzen kann
                oder das dann auch macht ist ja keine Gefahr.
                Wenn dann startet er halt den container neu.

                Solange Du von außen niemanden reinlässt oder irgendwelche genervten Pupertisten im eigenen Haus eine Gefahr darstellen, musst Du Dir eigentlich keine Sorgen machen.

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

                  @codierknecht

                  Gibt’s eigentlich n Adapter um Docker/portainer api auszulesen?

                  Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @ilovegym last edited by

                    @ilovegym sagte in Docker Container über Script täglich neu starten:

                    Gibt’s eigentlich n Adapter um Docker/portainer api auszulesen?

                    Nicht dass ich wüsste.

                    1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @ilovegym last edited by OliverIO

                      @ilovegym

                      was sollte man den da alles reinpacken.
                      das meiste benötigt man ja täglich nicht,

                      für container automatisiert updaten und neustarten gibts watchtower
                      und für den fall mal, das jemand wirklich automatisiert nachstarten möchte, dann kann man dafür die api aufrufen, aber eher würde ich hinterfragen, warum man denn da nachstarten muss.

                      und für komplexere fälle muss man sich mit kubernetes beschäftigen,

                      ilovegym 1 Reply Last reply Reply Quote 0
                      • ilovegym
                        ilovegym @OliverIO last edited by

                        @oliverio

                        Dachte an reines monitoring , meine docker laufen wie n vw Käfer…

                        1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO last edited by OliverIO

                          @ilovegym

                          Prometheus und grafana
                          https://docs.docker.com/engine/daemon/prometheus/

                          Codierknecht ilovegym 2 Replies Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @OliverIO last edited by

                            @oliverio sagte in Docker Container über Script täglich neu starten:

                            Prometheus und grafana

                            ... oder Alternativ Zabbix

                            1 Reply Last reply Reply Quote 0
                            • ilovegym
                              ilovegym @OliverIO last edited by

                              @oliverio @Codierknecht

                              danke euch, ich haette die Sache gern in iobroker drin, um eben ein neustart / uptime etc zu monitoren und dann evtl. Msg ausloesen lassen, wenn da was zickt..

                              Zur Zeit habe ich Dozzle als Container laufen, der zeigt mir die anderen Container in einer schoenen Uebersicht an und auch die Logs von allen, aber man muss halt ein Auge drauf haben.. und das soll mir der iobroker abnehmen.. 🙂

                              Im Prinzip sollte es doch einfach mit der Portainer-Api moeglich sein, die Daten abzurufen, habe das gestern erstmal ueber HA / Plugin gemacht, das geht , kommen aber nur nicht die Werte, die ich gerne haette, und wer arbeitet schon gerne mit HA ? 🙂

                              Habe mir dann ha-dockermon als Container installiert, der wirft mir ein reichhaltiges json aus, aber ich mach dazu mal n neuen Thread auf, das hat ja nix mit diesem hier wirklich zu tun..

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @ilovegym last edited by

                                @ilovegym

                                • Mit Prometheus monitors du
                                • Prometheus schreibt Daten nach grafana
                                • Du fügst schöne Grafiken aus grafana bei iobroker ein
                                1 Reply Last reply Reply Quote 1
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                619
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                6
                                17
                                600
                                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