QNAP Container Update einspielen

3. März 2022, Tags:

Ich bin schon wenigstens drei Wege gegangen, um zusätzliche Dienste auf einem QNAP-NAS laufen zu lassen. Manche Dienste habe ich als App in einem Repository gefunden.  Wenn es das nicht gab, habe ich Dienste in einer virtuellen Maschine in der VirtualizationStation laufen lassen. Derzeit bin ich ein großer Fan der ContainerStation und betreibe darin Dienste in Docker-Containern. Apps direkt auf dem NAS zu betreiben ist mir in puncto Sicherheit doch etwas zu heikel. Die virtuellen Maschinen wiederum sind sehr ressourcenhungrig. Doch auch Container erhalten immer wieder Updates. Diese möchte ich nicht aus den Augen verlieren. Aber wie kann man auf QNAP ein Container Update einspielen? Leider bietet die App keine so richtig komfortable Möglichkeit dazu an.

Sind Container Updates vorhanden?

Wie bekomme ich überhaupt mit, dass es ein Update gibt? Die Container kommen vom Docker Hub. Weder dort noch in der QNAP ContainerStation habe ich einen Weg gefunden, einen Update-Feed zu abonnieren. Hier behelfe ich mir mit dem Dienst „docker notify“. Ich habe mich einfach mit einer gültigen E-Mail-Adresse angemeldet und einen Access-Token per E-Mail erhalten. Damit hatte ich dann schon einen Account auf dem System und konnte mich anmelden. Die Oberfläche ist wahnsinnig einfach (siehe Bild 1): Im linken Kasten suchte ich nach den von mir genutzten Containern. Diejenigen, die ich beobachten möchte, habe ich dann einfach ausgewählt.  Sie erscheinen nun im rechten Kasten. Ab sofort erhalte ich bei Updates die im Bild 2 zu sehende simple E-Mail.

Container Update in der ContainerStation einspielen

Ein simpler „Update“-Button in der ContainerStation-App wäre ein Träumchen. Den habe ich leider nicht gefunden. Eine Zeit lang habe ich bei jedem Update einen neuen Container eingerichtet.  Das hat mich dann genervt 🙃. Heute gehe ich folgendermaßen vor, wenn ich auf meiner QNAP ein Container Update einspielen will:

  1. In der Container-App wechsle ich auf der linken Seite in den Punkt Resource -> Container. Hier wähle ich den zu aktualisierenden Container aus und schaue gleich noch einmal in dessen Settings nach ein paar Werten, die ich individuell eingestellt habe. Viele Werte werden im Folgenden nämlich nicht automatisch übernommen. Wichtige Werte, wie vor allem angepasste Startbefehle, Port-Weiterleitungen und eingebundene Volumes, kopiere ich mir in ein Editor-Fenster.
  2. Ich stopp den Container. Sonst habe ich nach dem Update gleich Konflikte und der neue Container startet nicht.
  3. Unter dem Drei-Punkt-Menü rechts oben klicke ich den Button „More“ und darunter wähle ich die Funktion „Duplicate“ (siehe Bild 3, rechts oben).
  4. Jetzt kontrolliere ich die Einstellungen. In erster Linie setze ich den Haken bei „Pull the image from the registry before creating the container“. Unter „Advanced“ trage ich dann noch die im ersten Punkt gesicherten Werte ein.
  5. Das war’s. Vor dem eigentlich Start des Prozesses kontrolliere ich nochmal alle Werte in der angezeigten Übersicht. Wenn dann alles gut ist, zeigt das kleine Task-Symbol oben rechts an, dass der neuen Container heruntergeladen wird (siehe Bild 6 – „Downloading…“).

Anmerkungen

Beim Anlegen des Containers achte ich sehr darauf, dass die Version auf ‚latest‘ steht. Wenn hier eine feste Versionsnummer steht, dann funktioniert der Update-Prozess natürlich nicht.

Ich bin auch oft sehr hemdsärmelig mit meinen Container umgegangen. Wenn etwas fehlte oder ein Setting nicht nach meinem Gusto war, habe ich mich schnell mal auf der Konsole eingeloggt und direkt eine Änderung vorgenommen. Dabei ändert sich der Container und ist nicht mehr mit dem ‚latest‘-Container identisch. Demzufolge wird aus dem gesetzten ‚latest‘-Tag etwas individuelles. Auch denn funktioniert der Update-Prozess nicht mehr.

Eine Antwort

  1. Oliver sagt:

    Vielen Dank. Auch wenn die Container Station mittlerweile etwas anders aussieht, hat mir deine Anleitung viel Zeit gespart. Super!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.