Portainer Update

  • Hallo,


    ich habe auf den QNAP unter der Container Station u.a. Portainer laufen. Dies wurde über ein yml-File mittels SSH installiert.


    Wenn ich nun Protainer aufrufe, meldet es, dass es eine neue Version gibt, V2.9.2, Ich habe V2.2.2 laufen. Wenn ich nun das yml-File erneut aufrufe, bekomme ich die Meldung, dass die Version akuell ist. Ein Update von V1.x auf 2.0 und dann auf 2.1.1 ging problemlos, aber nun funktioniert es nicht. Die yml-Datei sollte ok sein.

    Was mache ich falsch?


    Gruß qnapspider

  • Das hatte ich noch nicht probiert, aber es funktioniert. Danke für den Tipp.


    Aber das ist eigentlich nicht der Sinn der Sache. Mit der Angabe :latest sollte das neueste Image gezogen werden, ohne dass man wissen muß, welches das neueste ist. Warum klappt das nicht? Ich habe Nextcloud laufen und habe das Gefühl, dass es da auch so ist. Ich habe nur erst mal mit Portainer angefangen, da hier die Struktur einfacher ist und ich Nextcloud auch nutze,


    Gruß QNAPspider

  • ich hatte das auch schon mit nextcloud und vermutet, dass die Versionen erst etwas später eingepflegt werden ab und zu. wenn du dann noch etwas wartest, funktioniert es auch mit der latest Bezeichnung. Wenn du jedoch schnell so ein Update brauchst, mach es halt direkt über die Versionsnummer. Ist ja aber auch halb so wild, so lange die Updates funktionieren :)

  • Nachdem ich noch ein Bisschen gesucht habe, fand ich Artikel, die sich kritisch mit dem latest-Tag auseinandersetzten. Es wir scheinbar in Docker Hub nicht immer richtig gepflegt. Die Version ohne Tag oder mit latest-Tag ist nicht notwendiger Weise die neueste. Wenn diese mit der Versionsnummer eingestellt wurde, wird sie nicht beachtet.


    Latest sucht also nicht nach der neuesten Version, sondern nach einem Image ohne Tag oder mit latest-Tag. Es wird auch empfohlen, dies nicht für Produktionsumgebungen einzusetzen, da man nicht weiß, welche Version man bekommt.


    Gruß QNAPspider

  • Du kannst mit docker pull portainer/portainer-ce, bzw. dem entsprechenden Image für zb nextcloud, prüfen ob es eine neue Version gibt, wenn es eine neue gibt wird diese heruntergeladen. Anschließend stoppst du deinen Stack docker-compose down und startest ihn wieder docker-compose up -d. Das funktioniert aber nur, wenn du keine bestimmte Version angegeben hast und mit dem Tag "latest" arbeitest.

    Es wird auch empfohlen, dies nicht für Produktionsumgebungen einzusetzen,

    Ich nutze das bei allen meinen Containern und hatte bisher noch keine Probleme. Eine bestimmte Version nutze ich nur, wenn ich einen Rollback durchführe. Gerade wenn man mit Portainer arbeitet und die Container auch darüber updated, macht es ja mehr Umstände wenn man eine bestimmte Version angegeben hat - dann muss nämlich der Container komplett gelöscht und komplett wieder neu eingerichtet werden. Mit dem latest Tag stoppe ich den Container, klicke auf "Recreate", aktiviere die Option "pull latest image" und bin fertig.

    Das einzige was ich im Bezug auf den "latest" Tag mal festgestellt habe ist, dass wenn man zu gierig mit den Updates ist und versucht kurz nach der Veröffentlichung der neuen Version ein Update zu machen, Docker Hub diese noch nicht als latest erkannt hat und das Update somit nicht durchgeführt wird.

    Einmal editiert, zuletzt von Azrael783 ()

  • Ich habe diese Prozedur mehrfach gemacht und immer ist der Portainer V2.1.1 erstellt worden. Aktuell ist V2.9.2, da liegt ja schon einiges dazwischen. Ich habe dann versuchsweise die Version 1.x gestellt und anschließend wieder versucht, die aktuelle Version zu erstellen, heraus kam wieder V2.1.1


    Mit Angabe der Versionsnummer 2.9.2 hat alles sofort geklappt.


    Dass ich nicht der Einzige bin, der mit dem lastest-Tag negative Erfahrungen hat, kann man z.B. hier nachlesen


    vsupalov.com/docker-latest-tag/


    mit dem vielsagenden Titel "What's Wrong With The Docker :latest Tag?"


    Gruß QNAPspider


  • Du kannst auch (zumindest ist das bei Nextcloud so) Nur die Hauptversion angeben, also zb 2. dann wird immer das aktuellste Image mit der Hauptversion installiert und du müsstest so auf die Version 2.92 auch kommen. Ich bin mit dem Latest-Tag auch schon mal richtig angeeckt. Bei postgrsql war das. Dort ist aktuell die Version 14 und er hat die auch schön installiert. Nur muss man das Upgrade auf die neue Version selbst machen, was mir nur noch zu Fehlern führte. Seitdem bin ich da vorsichtg geworden mit. Falls mir übrigens jemand den Upgrade-Prozess von postgrsql näher beschreiben kann im docker. ich traue mich da aktuell nicht ran und wäre dankbar für jede hilfe.

  • Ich habe diese Prozedur mehrfach gemacht und immer ist der Portainer V2.1.1

    Kann ich mir nicht erklären. Hast du das Image wirklich gelöscht? Dann muss er ja irgendwas ziehen, wenn gar kein Image vorhanden ist.

    Und zu dem Blog Beitrag wegen dem Tag "latest": ich stimme dem Kerl zu, wenn es um produktive Apps / Container im professionellen Umfeld geht. Ich arbeite selbst im IoT Umfeld und wir nutzen auch immer eine ganz bestimmte Version. Wir deployen unsere Container aber auch über eine automatische Buildpipeline, die die Versionsnummer bei einem Update automatisch anpasst.

    Privat hab ich mal so grade überhaupt keinen Bock bei jedem Update den kompletten Container zu löschen und alle Einstellungen erneut vorzunehmen. Und ich nutze nicht nur zwei oder drei Container. Ich habe alleine 9 auf meinem Raspberry Pi laufen. Da werde ich weiterhin den Tag "latest" verwenden.