Hallo, ich baue gerade einen Container (Dockerfile) Nur ein Volume/Ordner für persistente Daten soll eingebunden werden. Aber an 3 Orten im File-System sollen persistente Daten liegen, für die Programme die dann im Container laufen. Mein Plan: 2 Mounts in das eingebundene Volume, einhängen vor der Programmausführung. Final dann 3 persistente Speicherorte. Problem: Alle run mount-Befehle im Dockefile schlagen fehl (permission fehler) Alle mount-Befehle im startscript des Containers schlagen fehl (ich dachte könnte ja auch da der mount erstellt werden, auch permission fehler) Daher die Frage geht das Überhaupt ? Also gehen generell Mounts im Container, oder Mounts in Volumes? MfG
draussen mounten, z.b. /data/eins /data/zwei /data/drei. im Dockerfile nix machen (ausser evtl. eine "Volume"-Angabe) im docker-compose.yml (oder in der docker cmdline beim Starten) per "volumes" oder "-v" das host-verzeichnis in den Container biegen. also docker run -v /data/eins:/var/lib/somewhere -v /data/drei:/home/irgendwer irgendwas dann hast du innerhalb des laufenden Containers Zugriff auf deine Storages, an den Pfaden die du angegeben hast.
Hallo, ja jeden Ordner von draußen rein mounten funktioniert ja, aber ich möchte nur einen Ordner rein-mounten und nicht 3 oder 5 oder 7. Weil es könnten noch mehr Stellen in Unter-Verzeichnissen geben an denen die Applikation im Container persistente Daten benötigt/erzeugt. Ausserdem soll der Container in Kubernetes laufen und dann muss ich ja für jedes Volume noch einen Volume Claim und ein Volume erstellen. Schlanker wäre hier toll. Diese Volumes dürfen sich "glaube ich" auch nicht überlagern im Speicher. Und die Nutzerdaten (jeder Container bedient einen Nutzer) sind dann auch verstreut auf die 3-7 Volumes. Auch nicht toll. So sollte es sein: Verzeichnisstruktur im persistenten Volume (aktuell in minikube) /PODNAME1/userdata/log /PODNAME1/userdata/bilder /PODNAME1/userdata/cfg /PODNAME2/userdata/log /PODNAME2/userdata/bilder /PODNAME2/userdata/cfg Verzeichnisstruktur im Container = POD /userdata/log /www/user/bilder /app/cfg Im Dockerfile nur ein Volume "/userdata" definieren, einbinden vom persistenten Volume /PODNAMEX/userdata dann war gedacht: mount --bind /userdata/bilder /www/user/bilder mount --bind /userdata/cfg /app/cfg Mounts im Dockerfile oder beim Starten des Containers - Permission fehlt - das ist dass Problem. MfG
Maik schrieb: > Mounts im Dockerfile oder Macht keinen Sinn. Das Dockerfile ist die "Bauanleitung" für den Container, aus dem build wird am Ende nur das Dateisystem weiterverwendet, keine aktiven Mounts o.Ä. > beim Starten des Containers - Permission fehlt > - das ist dass Problem. Kannst du per "cap_add CAP_SYS_ADMIN" oder gleich "privileged container" umgehen. Halte ich für eine extrem unschöne Frickellösung. Einfache symlinks gehen nicht? Die könntest du auch schon im Dockerfile vor-anlegen. Oder versuch die Applikations-Configs in deinem Container anzupassen, dass die mit deinen Pfaden arbeiten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.