Docker dauerhaft laufen lassen.

  • Wo sind die Docker Spezialisten hier?

    Ich habe auf dem odroid n2 coreelec drauf laufen.
    Auf dem selben Geräte, möchte ich linux docker starten.
    https://hub.docker.com/_/alpine
    Dort drin möchte ich python3 scripts über crontab 5 - 10 min takt laufen lassen.

    Docker pull hat funktioniert, image wurde erstellt.

    Docker run -ti alpine bash startet den docker, ich bin drin und kann mich dort austoben.
    Sobald ich aber den Container verlasse (exit). Wird der Container mit gestoppt.
    Kennt sich hier jemand mit aus?
    Dann möchte ich ein Verzeichnis aus dem Container ins host System clonen, damit man die files besser/schneller über winscp ins docker Schaufel kann.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • Das muss an deinem Docker liegen, der wird einen Trigger zum beenden mit drin haben.
    Meine "App" Docker für Emby usw laufen bis der Arzt kommt.

    Dann möchte ich ein Verzeichnis aus dem Container ins host System clonen, damit man die files besser/schneller über winscp ins docker Schaufel kann.

    Eher andersrum ;) mounte dir ein Verzeichnis in den Docker.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Das ist vermutlich ein reines Baseimage @Kampfader. Es hat weder ein CMD noch einen entrypoint. Bei deinem run Befehl wird bash zum CMD. Beendest Du bash, beendest Du auch das CMD und der Container beendet sich, was auch genau so gedacht ist. ein laufender Container soll immer nur einen Prozess haben und würde dieser Prozess beendet muss/soll auch der Container beendet werden um dem Host ggf. klar zu machen, dass etwas "nicht stimmt".

    Probier Mal
    docker run -d --name=alpine --entrypoint="tail -f /dev/null" alpine

    Wenn ich keinen Fehler drin habe sollte der Container damit an Leben bleiben in Hintergrund. Rein kommst du dann mit

    docker exec -it alpine /bin/bash

    GitHub Repo: Easyepg.minimal
    Docker Hub: Easyepg.minimal, Telerising.minimal
    Bierspende: PayPal.Me :thumbup:

    Geräte: AWOL Vision LTV-3000 Pro, ES Aeon Starbright CLR 90", NVIDIA Shield TV Pro 2019, Cambridge Audio CXUHD
    Backend: PC Engines APU 2D4 (Docker: TVHeadend, Telerising, Easyepg, Deconz, OpenHAB)

    Einmal editiert, zuletzt von dlueth (24. März 2021 um 19:37)

  • Also mit dem docker ist es nicht möglich, es dauerhaft laufen zu lassen?

    Muss mal einen anderen linux docker testen.

    Man könnte natürlich ins Container gehen, alles vorbereiten und dann über dem host cron den docker Ausführung+python script. Wenn er durch ist, beendet sich der Container wieder.

    Update:
    Danke @dlueth werde ich nach der Arbeit testen.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

    Einmal editiert, zuletzt von Kampfader (24. März 2021 um 19:58)

  • @Kampfader doch, ist möglich. Entweder du wie ich es geschrieben habe oder du machst dir dein eigenes Image auf Basis dieses Baseimages was dann das tail als CMD fest eingebaut hat. Baseimages sind meistens nicht unbedingt direkt zum "laufen lassen" gedacht, sondern eher um darauf eigene Images aufzubauen.

    Das andere geht aber auch, ist ja das was ich zum Beispiel mit easyepg.run im Unterschied zu easyepg.cron tue.

    ich glaube du könntest dir sogar noch einen alias basteln a la "python3docker ..." der den Container startet und dann im docker direkt "python3 ..." Aufruft.

  • spuckt mir jetzt diesen fehler hier raus. docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"tail -f /dev/null\": stat tail -f /dev/null: no such file or directory": unknown.

    ich versuche jetzt mit ubuntu docker, ist ein wenig größer.


    Update:
    Also ubuntu lief ohne faxen durch und läuft immer.

    komischerweise, blieb der ubuntu bei docker run -d hängen und startete immer neu.
    Danke für die Unterstützung leute.

    Update2.

    Habe heute auf Arbeit erfahren, das man unter coreelec auch Entware (opkg) https://discourse.coreelec.org/t/what-is-entw…install-it/1149
    ich denke das man damit auch ohne den ganzen docker ein python3 script ausführen kann. Muss mich aber erst einlesen

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

    3 Mal editiert, zuletzt von Kampfader (24. März 2021 um 23:14)

  • @dlueth danke dir für die Unterstützung, ich denke das es auf diese 50mb mehr Platzverbraucht nicht ankommt. Bis jetzt läuft ubuntu docker. mal schauen was passiert, wenn ich die Box neu starte.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • da musst du dann an deinem run noch eine restart-policy ergänzen, siehe https://docs.docker.com/config/contain…-automatically/

  • habe alpine gestartet bekommen und musste sofort feststellen, das es nichts für mich sei [ai]

    da gibt es ja kein apt-get Funktion, so wie ich es kenne. Es läuft alles über "apk update, apk add" usw.
    ich bleibe somit bei ubuntu, da kenne ich mich ein wenig aus.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • Brauche wieder ein wenig Unterstützung.

    Der ubuntu docker läuft, da drauf cron, python3 und requests installiert. Script lauft jede 2min über cron. Alles perfekt, bis sich der docker neu startet, ab dann läuft der cron nicht mehr, bis ich ins docker gehe und /etc/init.d/cron start ausführe. Jemand eine idee, wie man den cron automatisch, nach jedem docker start, startet?

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • gerade nochmal probiert, kommt
    root@CoreELEC:/# service cron enable
    * Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}

    dann das hier alles durchgetestet.

    update-rc.d cron enable
    update-rc.d cron defaults

    rcconf gibt es nicht, versucht es zu installieren, gibt es auch nichts.

    /etc/init.d/cron start und /etc/init.d/cron start -f funktioniert, nur bis zum nächsten neustart.


    Update:

    mein letzter stand ist, das ich selbst einen eigene docker erstellen muss mit entrypoint cron -f
    oder einen anderen docker testen.

    habe auch versucht den cron über host laufen zu lassen, leider nimmt docker exec keine binary files aka python3.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

    Einmal editiert, zuletzt von Kampfader (27. März 2021 um 00:02)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!