Also ich will ja nicht pingelig sein, aber einfach eine 69MB große Datei aus dem Internet über einen Dropbox Link von einem Random Dude zu downloaden und dann auf dem NAS auszuführen scheint mir die schlechteste aller Lösungen zu sein. Solche "Instruktionen" sollten meiner Meinung nach auch nicht noch weiter breitgetreten werden. Oder hast du das Binary, was in dem entsprechenden Skript codiert ist extrahiert und analysiert bevor du es ausgeführt hast?
Beiträge von tuxflo
-
-
Also in der Regel werden Konfigurationen in sogenannten Volumes abgelegt und vom Host in den jeweiligen Container reingereicht. Ich würde mal davon ausgehen, dass es bei Grafana auch so ist. Welches Image bzw. Dockerfile möchtest du denn verwenden?
-
Was vielleicht auch noch eine Alternative sein könnte, wäre Tailscale. Die werben damit, dass es dort volle IPv6 Unterstützung gibt. Und es gibt ein qpkg welches unter MIT Lizenz von der Community bereitgestellt wird.
-
Nein, ich habe mir irgendwann einen Raspi 4 angeschafft und lasse Home Assistant darauf laufen. Das vereinfacht vieles
-
Vielleicht eine blöde Frage, aber muss man den Aufwand für Wireguard überhaupt noch betreiben? Ich dachte das wäre mittlerweile auch direkt mit in die Firmware bzw. ins QVPN gewandert?
-
Ja dem kann ich mich nur anschließen. Weiterhin ist die Anleitung für Virtualbox geschrieben, auf dem QNAP wird aber eine andere, auf KVM basierende, Virtualisierungslösung verwendet.
Es gibt mittlerweile auch Dienstleister, wo man sich einen virtuellen Mac einfach in der Cloud anmieten kann.
-
Also mit einer auf dem NAS installierten Java Version hat das nix zu tun. Der Sinn von Docker/Containern ist ja genau unabhängig von dem Hostsystem zu sein, demnach würde ich sagen die Leute die dir das Image bereitstellen haben da etwas nicht "richtig" geupdated.
-
Ich nutze auch Keepass, genauer gesagt KeepassXC auf dem Rechner und KeepassDroid auf dem Handy.
Die Datenbank wird über Syncthing mit dem Nas und allen erforderlichen Geräte synchronisiert. Läuft seit 3 Jahren problemlos.
-
Also ich würde dir empfehlen dich erstmal mit den Grundlagen von docker-compose vertraut zu machen. Denn ein Hauptvorteil von docker-compose, im Vergleich zu "normalen" Containern ist, dass docker-compose zwischen den Containern ein sogenanntes Overlay Network aufbaut. Das heitßt konkret, dass sich die Container gegenseitig "sehen" können und auch keine Ports extra freigegeben werden müssen.
Bei dir konkret kannst du also unter MYSQL_HOST statt der IP den Service Namen "MHCloudDB" hinterlegen und das Portmapping im DB Service weglassen.
Nur wie mach das? Für welches Verzeichnis? Wo kann ich das Nachlesen?
In deiner Konfiguration in Zeile 35. Dort mappst du das Verzeichnis ./app/config in den Container.
-
Hallo Frank,
zunächst einmal Willkommen im Forum
Also man kann auf jeden Fall sagen, dass du deine Hausaufgaben gemacht hast und du schon ziemlich weitreichend in die Thematik vorgedrungen bist. Vielleicht etwas zu tief, denn wir mir scheint sind einige Sachen durcheinander geraten.
Zu "Befehl" und "Eingangspunkt":
Wenn du nur "fertige" Container betreiben willst, hast du damit in der Regel nichts zu tun. Die entsprechenden Argumente werden vom jeweiligen Container vorgegeben und müssen (im Normalfall) nicht angepasst werden. Du kannst die also in Falle von Nextcloud einfach "so lassen".
Zu "Umgebung":
Ja hier liegst du richtig. Über die Umgebungsvariablen die du dem Container mitgibst, wird er konfiguriert und setzt z.B. das Datenbankpasswort mit dem Wert den du dort hinterlegst.
Zu "Netzwerk":
Deine Aussage stimmt, Container sind zunächst nicht von außen zu erreichen. Damit du die Dienste von außen nutzen kannst musst du ein sogenanntes Portmapping durchführen. Dabei bindest du einen Port des Hosts (also von deinem NAS) an einen Port im Container. Wenn du Docker über die Kommandozeile bedienst würde z.B. -p 8088:80 den Port 8088 vom NAS auf den Port 80 im Container binden. Wenn der Webserver der Nextcloud also im Container auf Port 80 lauscht, könntest du über http://NAS_IP:8088 auf den Dienst zugreifen.
Und ja in der Regel vergibt dein Router die IP Adressen über DHCP, aber wenn man das nicht möchte, kann man auch statische IP Adressen vergeben. Dann muss man sich nur selbst darum kümmern welches Endgerät welche Adresse bekommt.
Zu "Gerät":
Hast du richtig erkannt, sollte für deinen Fall aber nicht relevant sein, da deine genannten Container nix mit Hardware zu tun haben.
Zu "Freigabeordner":
Hier verhält es sich eigentlich genauso wie mit den Ports. Du kannst "von außen" einen Ordner reichreichen und Docker sagen, wo er diesen innerhalb des Containers einbinden soll. Und ja das sollte man auf jeden Fall machen, damit, wie bereits von dir beschrieben, die Nutzdaten von den Anwendungsdaten entkoppelt werden.
Docker-Compose ist normal eine komplett eigene Baustelle. Das Tool dient hauptsächlich dazu mehrere Container miteinander zu verbinden. Demnach stimmt deine Aussage, dass sich sonst nicht wirklich was ändert im Vergleich zu "normalen Containern" voll und ganz. Technisch gesehen ist docker-compose nur ein Tool was im Hintergrund die "regulären" Dockerbefehle ausführt, damit man nicht mit den teilweise recht langen Befehlen rumhantieren muss.
-
MarGol nein LXC und LXD haben mit Docker nix zu tun. Da ich bisher von keinen Einschränkungen im Zusammenhang mit Docker gehört habe, gehe ich davon aus, dass du(und ich auch) weiterhin ecoDMS auf dem NAS betreiben kannst.
-
Also tatsächlich werden hier ein paar Sachen durcheinander gewürfelt.
Tatsächlich kannst du für deine Zwecke die Import/Export Funktion nutzen aber normalerweise sind Container basierende Anwendungen eben dafür gemacht, dass man die Container jederzeit wegschmeißen kann und aus den Images neue Container erstellen kann. Darum sollten sie auch so konfiguriert werden, dass alle Nutzdaten außerhalb des Containers (z.B. auf einem gemounteten Volume) liegen.
Das beantwortet auch deine zweite Frage:
Man macht keine Updates von Containern. Man stoppt den "alten" Container, zieht ein neues Image mit der aktualisierten Version (docker pull) und startet dann einen neuen Container vom neuen Image.
Die Nummerierung die dir unter Images angezeigt wird, sind sogenannte Tags. Diese kennzeichnen normalerweise entweder spezifische Versionen wie 1.0, 2.5 oder eben den letzten aktuellen Stand mit "latest". Warum es bei dir mehrere "latest" Versionen gibt weiß ich allerdings nicht.
-
Gerade mal bei mir geschaut: bei mir laufen 2 Container und zusätzlich die Linux Station und ich habe keinen derartigen Prozess. Klingt vielleicht komisch, aber vielleicht ist das Problem von dem Prozess, dass eben nichts läuft (und er möglicherweise die ganze Zeit sucht, ob es was zu tun gibt?)
Weiterhin ist es schon ganz schön peinlich zu sehen, dass es ein Technologieunternehmen wie QNAP bis zum Jahre 2021 nicht geschafft hat von Python 2.7 weg zu kommen
-
Was genau kann man denn mit der API machen was man mit den normalen Docker/LXC Befehlen nicht erledigen kann?
-
Wenn du nach der Anleitung vorgegangen bist, werden die Ordner in denen die Datenbank ihre Daten speichert, vom Host (also dem NAS) an die Container durchgereicht. Du musst also den Container stoppen, die Ordner leeren bzw. löschen und neu anlegen und den Container wieder starten (oder falls schon gelöscht neu erstellen).
-
Also ich denke du solltest nicht versuchen verschiedene Probleme gleichzeitig zu lösen. Entweder du schaust dir erst mal an, wie du an die Daten kommst oder du sorgst dich darum, das die IP Adresse stimmt. Beides gleichzeitig wird sicherlich knifflig, besonders wenn du, wie du schreibst, keine Docker Kenntnisse hast.
Im übrigen kann ich dolbyman nur zustimmen, dein Problem hat eigentlich so gut wie nix mit QNAP zu tun und gehört eher in als Issue in das entsprechende Github Repo.
Nun aber nochmal zum aktuellen Stand: hast du denn jetzt einen Ordner oder ein Volume wo die Daten drin sind?
Kannst du mal die Ausgaben von docker volume ls und docker ps -a hier einfügen?
-
Kannst du mal ein opkg update ausführen und danach mal schauen was opkg list | grep debootstrap ausgibt?
-
Ich bin mir nicht ganz sicher was du mit Konsole und Terminal meinst, aber falls du den Button innerhalb der Container Station meinst, dann kann ich dir sagen: nein das wird so nicht funktionieren. Der Button sorgt dafür, dass du ein Terminal innerhalb des jeweiligen Containers bekommst. Das ist zum Debuggen oder dem Kopieren von Daten aus dem Container geeignet, nicht aber um Docker oder docker-compose Befehle auszuführen.
Gibt es eine Doku dazu wie ich über SSH auf die Qnap einsteige und mir z.B. config-files anlege für Container? finde dazu leider auch nichts
Was genau soll es da groß zu dokumentieren geben? Du gibst ssh admin@meine_nas_ip gefolgt von deinem Passwort und schon bist du drauf. In aktuellen QTS Versionen wirst du dann mit einem Menü begrüßt, welches du über die entsprechenden Tastendrücke (q für quit, dann Y für yes) verlassen kannst. Danach kannst du einfach in das Verzeichnis wechseln, in dem du eine Config ablegen willst und dort dann z.B. das docker-compose File anlegen. Dann brauchst du nur noch ein docker-compose up -d aufrufen und fertig
Die so erstellten Container werden nach dem initialen Start auch in der Container Station angezeigt und du kannst diese dort z.B. stoppen oder löschen.
Update:
Ich sehe gerade, dass man mittlerweile auch direkt in der Container Station GUI die docker-compose.yml eintragen kann. Du musst dich also theoretisch gar nicht mit SSH befassen. -
Sinnvoll wäre noch, eine feste IP zu nutzen.
Das sollte doch automatisch der Fall sein, wenn du den Modus auf "Bridge" stellst oder? Ich betreibe im übrigen auch zwei Conbee Sticks, aber nicht am NAS sondern an dedizierten Raspberry Pis und bin äußerst zufrieden damit.
-
Wer kann mir hier helfen und/oder Tipps geben?
Hast du dich mal im Terminal auf dem entsprechenden Container eingeloggt und mal geschaut, wie die Rechte bzw. Verzeichnisse innerhalb des Containers aussehen? In der Containerstation kannst du dass einfach per Klick auf "Terminal" machen, oder per ssh mit dem Befehel
docker exec -it <Container_ID> /bin/bash.