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. Skripten / Logik
  4. Docker Container über Script täglich neu starten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    11
    1
    83

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    554

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

Docker Container über Script täglich neu starten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
17 Beiträge 6 Kommentatoren 1.2k Aufrufe 5 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.
  • M Matze1909

    Moin,

    ich habe über Portainer zwei Docker Container laufen:

    • ioBroker
    • PSA Car Controller

    Leider hängt sich der PSA Car Controller regelmäßig auf ohne dass er auf einen Fehler läuft, so dass ich ihn gerne jeden Tag neu starten lassen würde.
    Nun meine Fragen:

    Kann ich über ein Script im ioBroker auf den PSA Docker zugreifen und diesen täglich neustarten lassen?
    Wenn nicht, wie kann ich ansonsten einstellen, dass sich der PSA Docker täglich neustartet
    Im Portainer habe ich leider keine entsprechende Funktion gefunden.

    Vielen Danke für eure Hilfe.
    Matze

    haselchenH Offline
    haselchenH Offline
    haselchen
    Most Active
    schrieb am zuletzt editiert von
    #2

    @matze1909

    Möchtest Du dem Problem nicht auf die Spur kommen, bevor Du da irgendwelche Krücken benutzt?

    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

    M 1 Antwort Letzte Antwort
    1
    • M Matze1909

      Moin,

      ich habe über Portainer zwei Docker Container laufen:

      • ioBroker
      • PSA Car Controller

      Leider hängt sich der PSA Car Controller regelmäßig auf ohne dass er auf einen Fehler läuft, so dass ich ihn gerne jeden Tag neu starten lassen würde.
      Nun meine Fragen:

      Kann ich über ein Script im ioBroker auf den PSA Docker zugreifen und diesen täglich neustarten lassen?
      Wenn nicht, wie kann ich ansonsten einstellen, dass sich der PSA Docker täglich neustartet
      Im Portainer habe ich leider keine entsprechende Funktion gefunden.

      Vielen Danke für eure Hilfe.
      Matze

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #3

      @matze1909

      Der iobroker Container liefert ein Health Status
      So kann man neustarten wenn der healthstatus sich ändert

      https://stackoverflow.com/questions/47088261/restarting-an-unhealthy-docker-container-based-on-healthcheck

      Generell sollte man aber das Grundübel abstellen
      Den Container evtl mal auf debug stellen und das Container log prüfen

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      1
      • haselchenH haselchen

        @matze1909

        Möchtest Du dem Problem nicht auf die Spur kommen, bevor Du da irgendwelche Krücken benutzt?

        M Offline
        M Offline
        Matze1909
        schrieb am zuletzt editiert von
        #4

        @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

        OliverIOO 1 Antwort Letzte Antwort
        0
        • Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von Marc Berg
          #5

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

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          M 1 Antwort Letzte Antwort
          1
          • M Matze1909

            @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

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #6

            @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

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            1
            • Marc BergM 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 Offline
              M Offline
              Matze1909
              schrieb am zuletzt editiert von
              #7

              @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

              OliverIOO CodierknechtC 2 Antworten Letzte Antwort
              0
              • M Matze1909

                @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

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #8

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

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • M Matze1909

                  @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

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #9

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

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  ilovegymI 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

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

                    ilovegymI Online
                    ilovegymI Online
                    ilovegym
                    schrieb am zuletzt editiert von
                    #10

                    @codierknecht

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

                    ilovegym66 – ioBroker Projekte & Automationen
                    GitHub: https://github.com/Ilovegym66 | Austausch im Discord: https://discord.gg/yC65zjr5uq

                    CodierknechtC OliverIOO 2 Antworten Letzte Antwort
                    0
                    • ilovegymI ilovegym

                      @codierknecht

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

                      CodierknechtC Offline
                      CodierknechtC Offline
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #11

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

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      0
                      • ilovegymI ilovegym

                        @codierknecht

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

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von OliverIO
                        #12

                        @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,

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        ilovegymI 1 Antwort Letzte Antwort
                        0
                        • OliverIOO 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,

                          ilovegymI Online
                          ilovegymI Online
                          ilovegym
                          schrieb am zuletzt editiert von
                          #13

                          @oliverio

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

                          ilovegym66 – ioBroker Projekte & Automationen
                          GitHub: https://github.com/Ilovegym66 | Austausch im Discord: https://discord.gg/yC65zjr5uq

                          1 Antwort Letzte Antwort
                          0
                          • OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von OliverIO
                            #14

                            @ilovegym

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

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            CodierknechtC ilovegymI 2 Antworten Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @ilovegym

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

                              CodierknechtC Offline
                              CodierknechtC Offline
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #15

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

                              Prometheus und grafana

                              ... oder Alternativ Zabbix

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @ilovegym

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

                                ilovegymI Online
                                ilovegymI Online
                                ilovegym
                                schrieb am zuletzt editiert von
                                #16

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

                                ilovegym66 – ioBroker Projekte & Automationen
                                GitHub: https://github.com/Ilovegym66 | Austausch im Discord: https://discord.gg/yC65zjr5uq

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • ilovegymI ilovegym

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

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von
                                  #17

                                  @ilovegym

                                  • Mit Prometheus monitors du
                                  • Prometheus schreibt Daten nach grafana
                                  • Du fügst schöne Grafiken aus grafana bei iobroker ein

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

                                  1 Antwort Letzte Antwort
                                  1
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  341

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  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