Zeit in den Containern falsch

  • Hallo zusammen,


    ich habe folgendes Problem.


    In der Container Station laufen diverse Container, doch leider erkennt man bei den Konsolen Logs, dass die Zeit in jedem Container um 2h nach geht.
    Im Log der Container Station selbst, ist die Zeit korrekt.


    Da ich gerade dabei bin mich in das Themen Container und CS einzuarbeiten, sind mir jetzt die Ideen ausgegangen sind was ich noch machen soll.
    Mit Google bin ich durch, und ja, prinzipiell wäre es egal, aber ich benötige für mindesten eine Container App eine korrekte Zeit.


    Vielleicht hat von euch jemand eine Lösung.


    Gruß
    Serubal

  • um 2h nach geht.

    das klingt für mich nach klassischem Fall von "falsche Timezone ausgewählt". Das Verhalten ist demnach nicht von der Container Station abhängig, sondern von dem konkreten Container. Im einfachsten Fall mal über das Terminal in den laufenden Container gehen (z.B. aus der Container Station heraus) und mal mit date +%Z schauen welche Zeitzone in dem entsprechenden Container ausgewählt ist.

  • Hi, danke für deine Antwort.


    Wenn ich das mit der Konsole richtig gemacht habe, hat er mir UTC ausgeben. Wenn es nur UTC ist, dann fehlen +2h.

  • Ja wir, hier in Deutschland, haben die Zeitzone UTC +2 (im Sommer) und UTC +1 im Winter.
    Wenn dein Container Ubuntubasierend ist, kannst du mit dem Befehl  sudo dpkg-reconfigure tzdata die "richtige" Zeitzone auswählen. Du musst aber bedenken, dass die Änderungen am Container nur so langer erhalten bleiben, wie er läuft, wenn du ihn nicht mittels docker commit speicherst.

    Einmal editiert, zuletzt von tuxflo ()

  • Das mit dem sudo Befehl hat leider nicht funktioniert. Da kommt folgende Meldung.
    rpc error: code = 2 desc = "oci runtime error: exec failed: exec: \"sudo\": executable file not found in $PATH"


    Aber wie Du schon sagtest ist das nur solange gut, bis der Container neu startet.


    Ich brauch ne Lösung, die hält. :)

  • Also erstmal zum Befehl: der hat scheinbar nicht funktioniert, weil du vermutlich entweder kein sudo installiert hast oder ggf. schon als Root angemeldet bist, wie es bei vielen Containern standardmäßig der Fall ist.


    Zum zweiten Punkt: das kommt, wie ich bereits sagte, stark auf den Container an. Wenn du beispielsweise Zugriff zum Dockerfile des Containers hast, kannst du dieses editieren und einfach beim Erstellen des Images die korrekte Zeitzone eintragen. Die andere Möglichkeit ist die Erstellung eines neuen Images mit der korrekten Zeit unter Verwendung des Befehls docker commit. Dort können dann alle Änderungen die du am Container vorgenommen hast "gespeichert" werden. Du musst dann halt nur von dem neuen Image einen Container starten und nicht mehr von der Basisversion.

  • Ich hab das mal ohne sudo eingegeben. Den Befehl scheint er zu kennen, allerdings hab ich keine Kekse.
    /usr/sbin/dpkg-reconfigure must be run as root


    Primär wäre mir eine dauerhafte Lösung lieber. Kann man nicht bei der Erstellung des Containers in der CS in den Umgebungsvariablen einen Befehl mitgeben?


    Ich finde die Dokumentation von QNAP zu der CS eh ein Witz und ich hab leider noch nichts anderes gefunden was für einen Einsteiger wie mich geeignet wäre.
    Befehle zu Docker hab ich schon genug gefunden, aber die funktionieren meines Erachtens nicht mit der CS.

  • Ich sag es gerne nochmal: das hängt stark von deinem Container ab.
    Bei den meisten Containern ist man standardmäßig als Root unterwegs, bei deinem scheinbar nicht, hier könnte ein einfaches su vor dem dpkg Befehl weiterhelfen.
    Da du bisher noch nicht erwähnt hast, welchen Container du verwendest oder woher du ihn beziehst kann ich dir in der Hinsicht nicht weiterhelfen.


    Außerdem habe ich bereits 2 Möglichkeiten für eine "dauerhafte" Lösung erwähnt, zum einen die Erstellung eines neuen Images mit docker commit und zum anderen das Anpassen des Dockerfiles.


    Die Containerstation an sich ist nur ein Webfrontend für Docker. Wenn du Container verwenden möchtest, solltest du dich weniger mit der Container Station sonder mehr mit Docker an sich beschäftigen. Ich kann dafür die offizielle Docker Dokumentation empfehlen, die ist nicht nur aktuell sondern auch recht verständlich geschrieben und mit vielen Beispielen unterlegt, aber es gibt auch zahlreiche andere Docker Tutorials (auch auf Deutsch) im Netz.
    Die Befehle die du für Docker gefunden hast, kannst du sehr wohl verwenden, nur musst du diese halt auf der Kommandozeile des NAS (z.B. über eine ssh Verbindung) eingeben.

  • Danke für Deine Hilfe und Geduld, ich werd mal mit Deinen Infos mein Glück versuchen.


    Wie gesagt, ich bin dabei mich in das Thema ein zu arbeiten und das ich von Linux und Co. nicht wirklich Ahnung hab macht die Sache nicht leichter.
    Dokus hab ich schon reichlich gefunden, aber ich hab das Gefühl mir fehlt da noch der Zusammenhang.

  • Für mich als Gedächtnisstütze.


    command line in dem Container öffnen.



    docker exec -it my-docker bash




    die Uhrzeit wie gewohnt stellen



    dpkg-reconfigure tzdata



    den Container verlassen und die Änderung speichern.



    docker commit my-docker



    Container neustarten!

  • Ich habe gerade das gleich Problem.

    Ich habe das Container Image

    openhab/openhab:2.2.0-amd64-debian


    Hab dann mit dpkg-reconfigure tzdata die Zeitzone eingestellt und wollte die Änderung im Container mit "docker commit my-container" speichern. Was muss ich genau als "my-container" eingeben? Habe den Container Namen sowie die ID versucht. Ich bekomme immer folgende Meldung:

    Code
    oci runtime error: exec failed: container_linux.go:265: starting container process caused "exec: \"docker\": executable file not found in $PATH"     
  • Ich habe mir angewöhnt beim Erstellen eines Containers die Zeitzone immer gleich mitzugeben


    Entweder in den "Erweiterten Einstellungen" -> "Umgebung" TZ  ->  Europe/Berlin

    (siehe auch Screenshot anbei)


    oder bei Verwendung des - run Befehles folgenden Eintrag hinzufügen:

    -e TZ="Europe/Berlin"

  • Nein, zumindestens nicht mit "Hausmitteln".


    Wenn Du deine Container allerdings so eingerichtet hasst, dass die Daten und Einstellungen außerhalb des Containers liegen, dann kannst Du den Container ja problemlos neu erstellen.


    Falls die Daten und Einstellungen nicht außerhalb des Containers liegen, dann wird es womöglich Zeit dies nun gleich ebenfalls mit anzupassen. 8)


    [Nachtrag]

    hier ist das u.a. beschrieben Container Station - Steamcache - Installationsproblem - HIlfe benötigt

  • Nur ein kleiner Hinweis, für diejenigen, die Container mit einem YAML erstellen. Unter "environment:" die Zeile "- TZ=Europe/Berlin" hinzufügen.


    Man kann die falsche Zeit in den Containern sicher nicht als Fehler bezeichnen, aber ich hätte erwartet, dass die Container automatisch die Zeitzone des Hosts übernehmen.