Generelle Frage zu Docker

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
133
Punkte für Reaktionen
10
Punkte
18
Hallo zusammen,

habe mal eine generelle Frage zu Docker.
Werden bei Installationen von Images innerhalb von Docker (bsp. ecoDMS) die entsprechenden Anwendungen "isoliert" in einer Art "VM" (analog VMWare oder Virtualbox) zur Verfügung gestellt, oder werden auch einzelne Komponenten direkt auf dem Wirtsbetriebssystem installiert?

Danke und Gruß
Frank
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Das lauft innerhalb in einen abgeschlossenen LInuxsystem, im Wirtssystem wird nichts installiert, kannst aber Order und Files "heraus mounten". Ansonsten wären die Datenbanken etc. nach Neustart alles leer. Das weitere "bereitstellen" macht die Dockeranwendung (Synology) aber beim Image wird nichts im WirtsOS installiert.
 

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
133
Punkte für Reaktionen
10
Punkte
18
Ansonsten wären die Datenbanken etc. nach Neustart alles leer.
Welche DBs wären denn da bspw. leer?


Das weitere "bereitstellen" macht die Dockeranwendung (Synology) aber beim Image wird nichts im WirtsOS installiert.
Was kann ich unter "bereitstellen" verstehen?

Sorry für die blöden Fragen, aber diese Thema ist für mich absolutes Neuland, finde es aber extrem interessant damit rumzuprobieren. Möchte aber mein "produktives" System nicht "zumüllen".

Apropos zumüllen:
In meinem Ordner (siehe untenstehenden Code) befinden sich viele Ordner in welchen ecodms zur Verfügung gestellt wird, aber nur 2 haben das Datum an welchem der Container neu gestartet wurde (21.05).
Habe ich da was falsch gemacht, oder ist das normal so
(So was würde ich nämlich gerne auf dem produktiven System vermeiden wollen).

Code:
drwxr-xr-x 1 root root  132 May 13 21:56 66be51bcba42659d5638703f6c9984212f85aab9f6fd05438624d77b8e905100
drwxr-xr-x 1 root root  132 May 13 21:56 7043c72f1f5f9da94409affb7d7364e8aadd79ae068b551d51397151afb5eee9
drwxr-xr-x 1 root root  132 May 13 21:54 795f1d4dbe6a11fe75af2cb09f63402beab05154a3f72e35b69f5d404622d540
drwxr-xr-x 1 root root  132 May 13 21:54 7b3f13243eadb3cab0737c230ecdbaf03a671f641b3ea6825b1ea6654c22304f
drwxr-xr-x 1 root root  132 May 13 21:54 91edca3b04589be92510dcfc1339fabd6754482e89ac2e856ec74276457a2941
drwxr-xr-x 1 root root  132 May 13 21:56 948cc7cb0742a1aa08bda9b52268f69ead12a34e2cda822b50e2846f3d6a394b
drwxr-xr-x 1 root root  132 May 13 21:54 9aa99bfd18a0f8adcae18d65f51cb2ff1dadd58f44759cf443aaaf3c6285b729
drwxr-xr-x 1 root root  132 May 13 21:56 9cf55d7725d6d170fd5ee170f7f29a56dc630f83c611acc73cf76e26ea620e0c
drwxr-xr-x 1 root root  132 May 13 21:54 a70fe8da0b16f58429045fa1619a613c4e2bd4885af74264aaf2b58ecc0f0832
drwxr-xr-x 1 root root  132 May 13 21:54 b3b6938ef7c9b1a89e33e497422bbddfd767ef2dcf64deb97fe621312f49902c
drwxr-xr-x 1 root root  132 May 13 21:56 b42b889140aa0aac585c91d199d39173593206a150108233422cf1d7eb185237
drwxr-xr-x 1 root root  132 May 13 21:54 b6b31ef23c424c3a87c3b62d87ec9ae9c3e230c6b1f120d204be8e7b12af6b1e
drwxr-xr-x 1 root root  132 May 13 21:54 bf2e3fd532d97d230eced5888e41aa7e69100b83867b9819db3e9f0a05291541
drwxr-xr-x 1 root root  208 May 21 13:13 dc36b9b4de2ab9f448d2c817c27d78baae28cc87087614df3f9a0f6777428aa3
drwxr-xr-x 1 root root  152 May 21 13:12 dc36b9b4de2ab9f448d2c817c27d78baae28cc87087614df3f9a0f6777428aa3-init
drwxr-xr-x 1 root root  132 May 13 21:56 e87e862565cfacdfc422e435bf0ef6f8c2bd901a3dd4291247257a2cf7d7f198
drwxr-xr-x 1 root root  132 May 13 21:56 efe9e18c255662b0e5d7ebb4a42fc0410d7f89b4ea965db4056767fdae92ea1d
drwxr-xr-x 1 root root  132 May 13 21:54 f79fbc528d6468ed0e448023a26918644c1622a18b16a56df7a0bcf7a1bfcad8
root@VDSM_7_01:/volume1/@docker/btrfs/subvolumes#

Danke und Gruß
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Das System läuft sozusagen in einer Sandbox, wenn du es nach außen mountest sind die Daten einfach weg wenn der Container neu gestartet wird. Du musst dir die Sache wie ein RAM vorstellen, wenn der Container aus ist sind alle Daten weg, da immer wider das Image geladen wird. Einzig das mounten sorgt dafür das deine Daten nicht weg sind, welche nach Neustart wieder eingebunden werden.

Docker ist eine sehr schöne Losung Software zu emulieren welche ansonsten nicht auf der DS laufen würde oder mit erheblichen Aufwand.

Ecodms nutze ich nicht, ich verwende paperless-ngx das reicht mir vollkommen. Ich würde auch erst einmal mit was einfaches anfangen, damit du Docker verstehst. Ein Bsp dazu könnte Bitwarden/Vaultwarden sein. Wenn die persistenten Ordner und Images weg sind ist alles weg - da wird nichts vermüllt.

Probiere es aus ansonsten Flame wäre für den Anfang auch ok wie Portainer und wenn du es hin bekommen hast, denn Watchtower für die automatischen Updates. Fang also langsam an ;)
 
  • Like
Reaktionen: allahopp

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Ein Container ist nichts anderes als ein Isolierter Prozess der auf dem Kernel des Hostsystems läuft + ein wenig Storage- und Netzwerk-Magie. Ein Container installiert man nicht, sondern startet ihn auf Basis einer exakten Version eines Images. Eine Installation gibt es tatsächlich nur beim Erzeugen von Images - und ist etwas was der Ottonormalverbraucher eher nicht selbst tut.

Eine Container verwendet die Layer des Images + einen Copy-on-Write-Layer als Dateisystem. Dateiveränderungen an Dateien, die im Image existieren, aber zur Laufzeit im Container verändert wurden werden in den Copy-On-Write-Layer geschrieben. Wird der Container gelöscht, wird auch das Container-Dateisystem gelöscht. Spätestens, wenn man ein aktualisiertes Image verwenden will, muss der bestehende Container gelöscht werden und ein neuer angelegt werden (hier hat Syno einen einfachen Mechanismus in der UI eingebaut). Dauerhaft zu speichernde Daten müssel mittels Volumes in Host-Verzeichnisse gemapped werden.

Ansonsten schau mal in den Link meiner Signatur.
 
Zuletzt bearbeitet:

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
133
Punkte für Reaktionen
10
Punkte
18
Hallo zusammen,

habe die letzten Tage mal ausgiebig mit Docker getestet und die im diesem Thread aufgeführten Anregungen mal durchgespielt.
So langsam komme ich (dank eurer Hilfe) etwas voran :)

In der Synology-Hilfe steht, dass bei Diensten, die eine Datenbank verwenden in der Freigabe keine Datenintegrität benutzt werden soll (in einem anderen Thread wurde mir auch erläutert warum). Wenn das Paket "Docker" nun installiert wird, wird automatisch eine Freigabe "docker" angelegt, allerdings mit aktivierter Datenintegrität. Dieser Ordner kann auch nur gelöscht werden, wenn das Paket deinstalliert wird.

Ich bin jetzt wie folgt vorgegangen:
- Docker deinstalliert
- Freigabe gelöscht
- Freigabe "docker" manuell und ohne Datenintegrität angelegt
- Docker installiert


Hierzu habe ich noch 2 Fragen, welche ihr mir hoffentlich auch beantworten könnt.

Aus dem Protokoll habe ich mal folgende 3 Zeilen kopiert:​

Package [Docker] has been successfully installed.​
Recycle bin of shared folder [docker] was enabled.​
Normal shared folder [docker] was created.​

1) Verstehe ich das richtig, dass meine manuell angelegte Freigabe gelöscht wurde, aber mit meinen ursprünglichen Einstellungen wieder angelegt wird (bei der Installation von Docker und der automatischen Anlage der Freigabe "docker" wird der Recyler nicht aktiviert, den hatte ich bei meiner manuellen Anlage allersings aktiviert)?

2) Die Rechte dieser Freigabe werden ebenfalls automatisch mit Standardberechtigungen vergeben (diese werde ich auch nicht ändern, da wird in diesem Forum ja immer davor gewarnt).
Kann ich innerhalb dieser Freigabe Unterordner (z. B. je Image) mit individuellen Rechten vergeben, oder macht das eher keinen Sinn?

Mein Idee ist nämlich die, dass ich alle Dienste/Anwendungen, welche für eine Datenintegrität nicht in Frage kommt in diese Freigabe "docker" reinhänge, damit ich dann über SMB nur eine Freigabe mit entsprechenden Ordner und Berechtigungen habe.

Aktuell sieht es bei mir so aus:
- Freigabe "daten" und darunter die Ordnerstruktur mit den entsprechenden Berechtigungen
- Freigabe "home"

Jetzt käme noch eine Frage "docker" hinzu, mit einer darunter liegenden Ordnerstruktur und den entsprechenden Berechtigungen (analog Freigabe "daten").

Wäre nett, wenn ihr mir mitteilen könnt, ob das so passt, oder wie ihr das bei euch umgesetzt habt.

Vielen Dank vorab.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.474
Punkte für Reaktionen
1.087
Punkte
194
In der Synology-Hilfe steht, dass bei Diensten, die eine Datenbank verwenden in der Freigabe keine Datenintegrität benutzt werden soll (in einem anderen Thread wurde mir auch erläutert warum). Wenn das Paket "Docker" nun installiert wird, wird automatisch eine Freigabe "docker" angelegt, allerdings mit aktivierter Datenintegrität. Dieser Ordner kann auch nur gelöscht werden, wenn das Paket deinstalliert wird.
Hantierst du mit Datenbanken in GB-Größe? Ansonsten dürfte die Aussage von Synology wohl nicht ins Gewicht fallen.
Ich habe schon etliche Docker-Container mit integrierten Datenbanken am Wickel gehabt und konnte die von Synology möglicherweise auftretenden "Qualitätsprobleme" jedenfalls nicht feststellen. Ich würde es auch tunlichst vermeiden an dem Systemordner herumpfuschen (Stichwort: explizite Berechtigungen für Docker)
 
  • Like
Reaktionen: haydibe

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
133
Punkte für Reaktionen
10
Punkte
18
@Ulfhednir
vielen Dank für deine Infos.
Aktuell wollen wir unser DMS von einer Windows-Anwendung auf ecoDMS migrieren (aktuell ca. 1500 Dokumente) und zukünftig nur noch diese Anwendung nutzen. Von daher kann ich bzgl. der Größe nichts dazu sagen.
Wenn es zu keinen Quatlitätsprobleme, bzw. Datenverluste durch die Datenintegrität kommt, ist das für mich auch i. O.

Ich würde es auch tunlichst vermeiden an dem Systemordner herumpfuschen (Stichwort: explizite Berechtigungen für Docker)
Meinst du damit auch meinen "Workaound" das Verzeichnis manuell anzulegen, oder nur das Thema der Berechtigungen?

Da habe ich gestern noch getestet und festgestellt, dass die Berechtigungen auch je Image und zu mappendes Verzeichnis unterschiedlich sein kann (von den Berechtigungen werden ich auf jeden Fall die Finger lassen)

Wenn ich dich also richtig verstehe:
- Docker installieren
- Alles so lassen wie es automatisch angelegt wird (auch Datenintegrität aktiviert)
- An den Berechtigungen nichts ändern.
- Die installierten Images und evtl. zu mappenden Verzeichnisse ins "docker"-Verzeichnis legen
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
- Docker installieren
- Alles so lassen wie es automatisch angelegt wird (auch Datenintegrität aktiviert)
- An den Berechtigungen nichts ändern.
- Die installierten Images und evtl. zu mappenden Verzeichnisse ins "docker"-Verzeichnis legen
Das hast du richtig verstanden, bei einigen Container musst du neben den mappen noch die Umgebungsvariablen anpassen bzw. ergänzen.
Beispiele dafür wären: Username, Passwort, Datenbanktyp, Datenbankname, Datenbankpasswort usw.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat