Docker (openhab) verbraucht den ganzen Platz

  • bei mir auf dem N2 läuft ein Elec System, da drauf habe ich 5 Docker Systeme laufen und das schon seit über einem Jahr.
    Heute wollte ich es Updaten und festgestellt das er die neue Datei nicht runterlädt, daher bin ich drauf gestoßen das die ganze emmc voll sei.

    df -h

    gibt mir das hier aus.

    docker system prune -f oder docker system prune -a -f

    hat knapp 1,2gb entfernt, trotzdem frage ich, ob es so richtig sei, was der docker da macht.
    Jetzt die frage an die docker profis @dlueth @DeBaschdi kennt ihre eine Lösung, für dieses Problem?

    Code
    CoreELEC:~ # docker images -a
    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    takealug/telerising-api   latest              be3a81bb32b3        6 weeks ago         218MB
    qoopido/easyepg.minimal   latest              6776eaa327ed        3 months ago        295MB
    linuxserver/nginx         latest              77949841fb37        5 months ago        134MB
    linuxserver/webgrabplus   latest              ae5d9d68885f        5 months ago        240MB
    openhab/openhab           latest              d09c03f8cd77        7 months ago        769MB
    Code
    CoreELEC:~ # docker ps -a
    CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                      NAMES
    24955c8b133b        takealug/telerising-api          "/usr/local/sbin/ent…"   6 weeks ago         Up 12 minutes                                                  telerising-api
    afbc1e80e5b2        qoopido/easyepg.minimal:latest   "/usr/local/sbin/ent…"   3 months ago        Up 12 minutes                                                  easyepg.cron
    0697f8b647f8        linuxserver/nginx                "/init"                  5 months ago        Up 12 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx
    733039869ebd        linuxserver/webgrabplus          "/init"                  5 months ago        Up 12 minutes                                                  webgrabplus
    cc5e2ad610cf        openhab/openhab                  "/entrypoint.sh gosu…"   6 months ago        Up 12 minutes                                                  openhab

    [successbox][/successbox]

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

    Einmal editiert, zuletzt von Kampfader (19. April 2020 um 19:45)

  • Der Platz, den ein Docker auf einem Speichermedium verbraucht unterteilt sich in verschiedene Aspekte.

    Ich würde dir diesen Artikel ans Herz legen:

    https://www.eknori.de/2017-08-21/wha…cker-container/

    Der erklärt es, wie ich finde, recht gut (und habe sogar selbst was dabei gelernt ;) ).

    Ich würde ich mal das Kommando "docker system df" anschauen:

    https://docs.docker.com/engine/referen…em_df/#examples


    Das gibt ein wenig mehr Aufschluss als "docker images -a"

    Und wenn du dir dann sicher bist, ob es die Docker sind, oder ggf. noch was anderes und die Docker es doch nicht sind, dann würde ich die das Kommando "du -h <ordnername>" empfehlen und das mal gegen alle Ordner in deiner storage-Partition laufen lassen. Ich könnte mir vorstellen, dass auch der Thumbnailordner recht voll ist

    Und ja...vielleicht ist ne 16GB Karte auch nicht zu empfehlen, wenn du noch verschiedene Services laufen lassen möchtest. Da wäre >=64GB ggf besser geeignet.

  • @Kampfader ich kenne das Problem als Softwareentwickler schon lange. Bei mir tritt es häufiger auf, da ich auch viel mit npm mache. Docker und npm sind beides ziemliche Speicherfresser, npm sicherlich noch deutlich mehr.

    Docker hat Lösungen dafür, aber warum sie keinen Automatismus zur Bereinigung einbauen hab ich ehrlich gesagt auch nie verstanden.

    Ich tippe darauf, dass dein Problem nicht so sehr die Images der Container sind die Du verwendest sondern die Fragmente von alten Images davon und von deren Baseimages. Die bleiben nämlich liegen seitens docker.

    Hattest du vorher Mal "docker images" eingegeben?

  • Ich möchte dir ja nicht zu nahe treten, aber das Image eines Dockers, woraus der laufende Container gestartet wird, änder sich nicht. Das ist ja auch erstmal nur Read-only. Es ist der andere Layer, der sich darüber legt und worin dann Daten gespeichert werden ggf. auch in "Volumes". Oder habe ich das falsch verstanden? So wie ich das verstehe, haben wir 2 verschiedene Dinge, auf die wir hier acht geben müssen. Einmal die Größe des Containers und einmal die virtuelle Größe. Wenn ich einen Container starte und der zu schreibende Teil nur ein paar kb groß ist, dauert es recht lange, bis da GB voll werden. Das können wir aber aus den obigen Ausgaben nicht ersehen. Dort sehen wir nur, wie groß das Image als solches ist. Das Image ist aber Read-only und ändert sich nicht. Somit können wir noch nicht sagen wieviel Speicherplatz auf der Disk durch das Image und durch ggf. Daten beim laufenden Container belegt wird.

    Da braucht es mehr Info.

  • danke fürs info @DaVu mit dem befehl du -h "ordner"
    habe ich den Übeltäter gefunden

    1.3G /storage/.kodi/userdata/Thumbnails
    4.4G /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2
    5.6G /storage/.kodi/userdata/addon_data/service.openhab/userdata/tmp

    ich denke, ich muss erstmal den Fehler unter openhab suchen, vielleicht kann man es irgend wie automatisch säubern..
    @horschte du als Openhab experte, kannst du bestimmt was zu sagen.

    und ja, anscheinend sind 16gb zu wenig, oder ich überlege es mir den Openhab auf einen Pi zu übertragen.

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

  • Du vergisst dabei neue Versionen der Images, das ist der Denkfehler, zumindest so denn Updates gemacht werden. Klar "wächst" auch der Container, je länger der läuft. Daher habe ich z.b. bei meinem Container wenn er über das init-Script eingerichtet wird /tmp als TMPFS reingegeben, was das Problem bei meinem Container verringern oder eliminieren sollte.

    Meiner Erfahrung nach sind es aber - zumindest aus der Sicht eines Entwicklers - in 99% der Fälle eher die Images, die viel Platz wegnehmen.

  • ich vermeide updates unter docker so geht es geht. Openhab z.B nie Aktualisiert, da läuft auch nur ein Pflanzen Sensor+Telegramm, sonst gar nichts, warum er trotzdem so voll wird, weiß ich jetzt noch nicht, bin aber schon am suchen und lesen/probieren.

    kann ich /tmp auch bei einem normalem .sh script als tmpfs verwenden? oder nur mit init script möglich?

    mein openhab docker script sieht so aus.

    seit gestern abend, funktioniert auch der openhab nicht mehr, habe ich Woll mit den ganzen docker prune, irgend was gelöscht :rolleyes:

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

  • @Kampfader wenn dein ist das unterstützt kannst du das auch bei docker run mit angeben, Beispiel siehe https://github.com/dlueth/easyepg…6de30/init#L186

  • 5.6G /storage/.kodi/userdata/addon_data/service.openhab/userdata/tmp

    ich denke, ich muss erstmal den Fehler unter openhab suchen, vielleicht kann man es irgend wie automatisch säubern..
    @horschte du als Openhab experte, kannst du bestimmt was zu sagen.

    also der userdata ordner unter oh ist bei mir weit von dem entfernt, was da bei dir angezeigt wird. momentan 140mb nach 14 tagen laufzeit ohne neustart.
    lösche doch mal den openhab cache, vlt sind da alte sachen übriggeblieben
    https://community.openhab.org/t/clear-the-cache/36424

  • musste heute meine 5 docker neu aufsetzen, habe im docker/overlay2 pfad, ein paar Ordner entfernt die von 2019 waren, dachte das man die nicht mehr braucht. naja, falsch gedacht, es lief kein einziger docker mehr :whistling:

    lösche doch mal den openhab cache, vlt sind da alte sachen übriggeblieben

    das meiste war im openhab/userdata/tmp drin, habe jetzt alles aus dem /tmp als auch /cache entfernt und openhab docker neu erstellt.
    Ich beobachte jetzt eine Woche land die zwei Ordner, wenn sie sich schnell auffühlen, werden ich sie Wöchentlich über cron leeren.
    danke an alle die mich unterstützt haben, habe wiedermal was von Linux befehlen gelernt. Die ich sowieso bis nächsten Problem wieder vergessen habe. :D

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

  • @Kampfader probier dich sonst auch Mal beim docker run folgendes zu ergänzen:

    --tmpfs /openhab/userdata/tmp --tmpfs /openhab/userdata/cache --tmpfs /tmp --tmpfs /var/[definition='1','0']log[/definition]

    Die Pfadangabe bei den ersten beiden sollte dem Pfad innerhalb des Containers entsprechen, Check also ob die so stimmen...

  • @dlueth danke für den Vorschlag, teste ich die tage mal, ich möchte den jetzigen openhab docker ein paar tage beobachten.

    darf man die Zeilen auch untereinander schreiben?
    als Vorlage nehme ich meine fertiges script


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

  • @Kampfader ja, kannst du genau so schreiben wie du es gepostet hast. Ich meine aber es muss vom host-System unterstützt werden und failed Sonst beim Start. Evtl muss es auch unter die -v Zeilen, weil 2 der Verzeichnisse ja da drin sind

Jetzt mitmachen!

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