Anzahl Container auf einem NAS

  • Hallo,

    Auf meinem NAS TS-451D2 läuft in einem Container Paperless-ngx. Nun wollte ich Immich zur Bilderverwaltung nutzen, lese aber das Immich auch in einem Container läuft.


    Das Thema Container ist für mich noch vollkommen neu, deshalb meine Frage(n):


    Wieviele Container können auf dem TS-451D2 mit 32GB Arbeitsspeicher gleichzeitig aktiv sein?


    Welches NAS würdet ihr mir bei einem Update/Neukauf empfehlen, wenn man zwei und mehr Container in Betrieb hat?

  • Du kannst seeehr viele Container erstellen und nutzen, also einfach mal ausprobieren.

    Ich nutze auf einem TS-253pro mit 8GB RAM (ähnliche Generation wie deins, aber 4 Cores) z.Z. 7 Container (MariaDB, PHP-MyAdmin, Jellyfin, Baikal, BubbleUPnP, Kodi-Headless und ein Subversion-Server), ebenso auf einer TS-253E mit 16GB. RAM ist kein Thema, selbst auf der 253pro mit 8GB sind weniger als 4GB für Container in Verwendung. Wenn du allerdings richtig fette Container planst, kannst das natürlich anders ausfallen.


    Wie hoch die Auslastung das schlussendlich ist, hängt vom Nutzungsschema der Container ab. Wesentlich ist natürlich was die Container-App tut und wie viele Container diese wirklich parallel aktiv genutzt werden. Je nach Container kann sich eine SSD lohnen, denn teilweise werden sehr viele Dateien erzeugt und gelesen und das ist halt auf einer HDD nicht gerade schnell. Auf meiner TS-253E liegen die Container auf einem M.2 SSD-RAID und im Vergleich zur 253pro mit HDD-only ist die Schwuppdizität schon deutlich erkennbar (die CPU ist allerdings auf mehr als 4 mal so schnell).

  • Ich hab ein TS-673A mit 6Containern am Laufen. Da merke ich von der Auslastung bisher überhaupt nix.

    Immich habe ich auch drauf (übrigens ein top Programm. wenn man es mit Qmagie vergleicht um Welten besser) da kann es angebracht sein dies auf SSD kaufen zu lassen wegen der Datenbank und den Thumbnails. Das erste Einlesen wenn keine GPU vorhanden ist, kann auch etwas dauern und dabei kann dein Nas in die Knie gehen. Aber das ist ja eine einmalige Sache

  • Danke für eure Erklärungen. Allerdings kann ich mein NAS von der Leistung her nicht zu euren (TS-253pro, TS-253E und TS673A) einordnen (wer ist Leistungsstärker)


    Was bringt es überhaupt für ein Vorteil wenn man MariaDB oder PHP-myadmin in einem Container laufen läßt. Zumal es doch MariaDB als App für QNap gibt.


    Ich hatte es so verstanden das die jede Applikation gekapselt von den anderen Anwendungen ist. Aber dann könnte ich doch MariaDB nur in dem einen Container verwenden.


    Oder verstehe ich das alles falsch, ich hatte einen Container immer als eine Art Virtuelle Maschine verstanden?

  • Ein Container ist keine vollständige Virtuelle Maschine sondern es wird die über eine definierte Schnittstelle der Kernel des Host-Betriebssystems verwendet (deshalb werden auch deutlich weniger Resourcen benötigt). Er ist ist aber durchaus erstmal getrennt vom Host-System, man kann (und muss meistens) Verzeichnisse spezifizieren, wo der Container die Benutzerdaten finden kann bzw. wo er Konfigurationsdateien ablegen soll (die sogenannten Volumes).


    Container können durchaus miteinander kommunizieren, wenn man dies in der Container-Definition so festlegt. Standardmässig laufen sie in einer NAT-gekapselten Netzwerkumgebung, aber man verschiedenen Container explizit verbinden oder den Container direkt ins Host-Netzwerk integrieren (sieht dann so aus als lief eine normale App auf dem NAS). Letzteres ist z.B. für viele Medienserver notwendig.


    Eine Übersicht wie Container prinzipiell funktionieren gibt es z.B. auch bei QNAP: https://www.qnap.com/de-de/software/container-station


    Achja, je nach Container-Anwendung kann eine vorhandenen GPU hilfreich sein (z.B. fürs HW-Transcoding von Medien), die dein TS-451D2 aber ja hat.

    Für x86-CPUs gibt es meist mehr Auswahl an Containern als für ARM-CPUs.

    Einmal editiert, zuletzt von warpcam ()

  • Ok, so langsam wird mir einiges klar, aber welchen Vorteil bringt es z.B. MariaDB in einen Container anstatt direkt auf dem Betriebssytem laufen zu lassen.


    Oder andersrum gefragt, könnte man auch Paperless-ngx auch direkt auf einem QNAP laufen lassen und was wären dann für Nchteile zu erwarten?


    Nachtrag: Ok, die Vorteile habe ich gerade gelesen, aber verstehen…

  • aber welchen Vorteil bringt es z.B. MariaDB in einen Container anstatt direkt auf dem Betriebssytem laufen zu lassen

    Der größte Vorteil ist, dass man selber festlegen kann, wo die Daten der Datenbank gespeichert werden. Das ist vor allem fürs Backup und die Recovery ein entscheidender Vorteil. Man kann die Datenverzeichnisse der Container z.B. direkt ins HBS-Backup aufnehmen, was ansonsten nur sehr umständlich mit der nativen App zu erreichen ist.


    Früher habe ich mühsam mit SQL-Dumps rumhantieren müssen, um die Datenbanken zu sichern (ich nutze auch Kodi über MariaDB). Das fällt alles weg, es sei denn, man will von auf eine andere Datenbank wechseln.


    Weitere Vorteile sind:

    • Jemand muss die App aktualisieren und das ist meist nicht der Anbieter selbst. Deshalb hinken viele Apps dem aktuellen Stand hinterher. Für viele Apps gibt es direkt vom Anbieter aber einen Container (man sollte immer genau hinschauen, wer den Container anbietet!) und damit kann man immer auf dem aktuellen Stand aktualisieren, wenn man will und Zeit hat. Das kann auch aus Sicherheitsaspekten sehr hilfreich sein.
    • Update und Desaster-Recovery ist einfach, vor allem wenn man sich Schablonen für Docker-Compose erstellt hat. Man kann den Container einfach fix neu erstellen, ohne Daten zu verlieren, denn die liegen normalerweise ausserhalb. Ich habe letztens beim Umzug auf das TS-253E einfach die Volumes per HBS restauriert und die Container neu erstellt und alle liefen direkt wieder so, als ob nix gewesen wäre.
    • Erhöhte Sicherheit beim Datenzugriff, denn worauf die Container zugreifen dürfen, bestimmt man selbst. Bei einer installierten App kann diese auf das gesamte NAS zugreifen, auch auf Systemdateien, denn nahezu alle nativen Apps laufen als Administrator. Selbst wenn man einer App traut, kann es trotzdem auch Fehler geben, die potentiell im Systembereich des NAS Probleme machen könnten. Das kann mit Containern nicht passieren, denn diese sehen nur ihre eigene Umgebung plus die Verzeichnisse, die man ihnen als Volumes sichtbar macht.

    könnte man auch Paperless-ngx auch direkt auf einem QNAP laufen lassen

    Wenn niemand eine native App für Qnaps erstellt, dann nicht.

  • warpcam , danke für deine Ausführungen.


    Ich habe mir gerade in Youtube die Videos von Heise zum Thema „Warum Container? Einführung in Docker Tutorial 1-6“ angesehen. Ich glaube ich habe das Prinzip nun verstanden.


    Dann könnte ich auf dem QNAP auch mehr als eine MariaDB Datenbank auf einem QnAP laufen lassen?

  • Dann könnte ich auf dem QNAP auch mehr als eine MariaDB Datenbank auf einem QnAP laufen lassen?

    Ja. Aber dann mit den Netzwerkport-Zuordnungen für den Zugriff aufpassen, dass diese verschieden sind. Das ging auch mit den nativen QNAP-Versionen 5 und 10 schon, beide konnten parallel laufen. Aber als Container kann man da freier wählen.


    Aber wozu braucht man mehrere MariaDB-Instanzen? Ein Server kann doch auch viele Datenbanken handhaben. Eine Anwendung könnte sein, wenn man Clients hat, die nur mit einer bestimmten MariaDB-Version sauber funktionieren.

  • Aber wozu braucht man mehrere MariaDB-Instanzen?

    Ich denke da zum Beispiel an QuMagie/Immich.


    Dann wollte ich Lokal eine Piwigo Datenbnk laufen lassen.


    Und ob Paperless-ngx oder Plex aud Datenbanken zugreifen weiß ich im Moment nicht.

    Aber war ja auch nur eine Idee.

  • Ich kann nur empfehlen, sich zuerst den Portainer Container zu installieren.

    Dann hat man ein von Qnap unabhängiges Verwaltungstool für weitere Container.

    Zu Portainer gibt es auch deutlich mehr Anleitungen/Videos.


    Ich habe Immich dort per Yaml Stack installiert. Der Stack bringt eine eigene Datenbank mit und besteht aus insgesamt 4 Containern.


    Die Speicherorte der Bilder und Videos trägt man einfach als Volumes in die Yaml Vorlage ein.


    Tschau

    Uwe

  • Ich kann nur empfehlen, sich zuerst den Portainer Container zu installieren.

    Hast du mal einen Link wo ich Portainer runter laden kann, oder bekomme ich den bei hub.docker.com?

  • Hallo,

    ich Muß diesen Thread wieder aufleben lassen. Ich versuche MariaDB und phpmydmin jeweils in einem Container laufen zu lassen


    warpcam du hast doch Mariadb und phpmyadmin auf deinem QNap bestimmt jeweils in einem Container laufen?

    Hast du da eine Anleitung oder eine Compose Datei um die Container einzurichten?


    Hast du die Container über die GUi eingerichtet oder über die Kommandozeile?


    Danke schon mal im voraus

  • Ja, habe ich:

    Die Verzeichnisse

    • /share/Container/MariaDB/docker_volumes/var_lib_mysql
    • /share/Container/MariaDB/docker_volumes/etc_mysql
    • /share/Container/MariaDB/docker_volumes.phpmyadmin/conf.d

    musst du für dich anpassen und gegebenenfalls neu anlegen.


    Das root-Passwort für die Datenbank muss du ebenfalls in den Platzhalter einsetzen.


    Hast du die Container über die GUI eingerichtet oder über die Kommandozeile?

    Habe ich übers GUI installiert. Einfach unter Applications "Create" aufrufen, einen Application-Namen vergeben und die angepasste Compose-Datei ins das Eingabefeld kopieren, Validieren und Anlegen. Fertig.


    Danach ist MariaDB über Port 3307 unter der NAS-IP erreichbar. Die phpMyAdmin ist dann unter http://<NAS-IP>:8082 erreichbar.


    Die Volume-Verzeichnisse kann man dann einfach per HBS3 sichern.

    2 Mal editiert, zuletzt von warpcam ()

  • Danke, ich werde das in den nächsten Tagen versuchen umzusetzen.




    Hallo warpcam die Container für MariaDB und phpmyadmin konnte ich mit dem Script erstellen (Pfade und Passwort habe ich angepasst). Aber welche Benutzer mit Kennwort benutze ich für phpmyadmin. Muß ich diese Variablen noch definieren oder sind die schon hinterlegt?

    2 Mal editiert, zuletzt von Micha_56 () aus folgendem Grund: Ein Beitrag von Micha_56 mit diesem Beitrag zusammengefügt.

  • Aber welche Benutzer mit Kennwort benutze ich für phpmyadmin

    Administrator ist "root" zusammen mit dem Passwort, was du in die Compose-Vorlage eingetragen hast.

    Wenn du dann angemeldet bist, kannst du in phpMyAdmin weitere Nutzer anlegen (Tab Benutzerkonten).


    Achja, die Anmeldung funktioniert erstmal nur per http (nicht https). Wenn dein Browser also auf https umleitet, brauchst du einen zweiten Versuch, weil phpMyAdmin dann auf http zurückstellt. Zumindest verhält es sich bei mir mit Firefox so.

  • Habe ich mich doch davon irritieren lassen das die beiden Container angelegt wurden allerdings funktionieren sie nicht. Ich habe folgende Meldungen erhalten:

    Und

    Code
    NAS Name: NAS494C26
    Severins: Error
    Date/Time: 2025/04/29 18:31:55
    App Name: Container Station
    Category: Applications
    Message: [Container Station] Failed to start application "app-1". Error message: operateApp action [--project-name app-1 start] failed: exit status 1:  Container mariadb  Starting
    Error response from daemon: driver failed programming external connectivity on endpoint mariadb (ecc6ec3f8a2c235e59105323f735b846798b7668b6797e74420640951030b3f3): failed to bind port 0.0.0.0:3307/tcp: listen tcp4 0.0.0.0:3307: bind: address already in use

    Kann jemand die Fehlermeldung interpretieren bzw. Was habe ich falsch gemacht?

  • Hast du evtl. schon eine MariaDB-Instance von QNAP am laufen?

    In der letzten Zeile der Fehlermeldungen staht, dass die Ports schon verwendet werden und daher nicht gestartet werden kann.