Ich bin ein relativer Neuling zu Docker, also bitte bitte mit mir, wenn die Antwort offensichtlich ist.Docker - Feed Daten aus dem schreibgeschützten Verzeichnis auf dem Host in Container
Ich versuche, meinem Docker-Container Zugriff auf ein freigegebenes Datenverzeichnis auf dem Host zu geben, das über bestimmte Gruppenberechtigungen verfügt und für die Gruppe des vorgesehenen Benutzers schreibgeschützt ist.
Ich habe bereits versucht docker run -it -v /data:/data ubuntu /bin/bash
mit dem resultierenden Fehler docker: Error response from daemon: error while creating mount source path '/data': mkdir /data: permission denied
. Es ist also eindeutig ein Erlaubnisproblem.
Der Kern, den ich auf google sah, ist, dass, wenn Sie ein Volume binden, müssen Sie Lese-Schreib-Erlaubnis haben. Also ich suche einen alternativen Weg, möglicherweise mit docker volume
?
Das Datenverzeichnis ist riesig, daher ist jede Art von Duplizierung nicht möglich. Auch das Ändern von Berechtigungen ist nicht möglich.
Systeminfo:
docker Server Version: 17.03.1-ce
Operating System: Ubuntu 16.04.2 LTS
EDIT:
Also habe ich es schließlich nach dem hilfreichen Kommentar von @barat herausgefunden.
Das Problem war, dass das genaue Verzeichnis, das ich versuchte, in den Container zu mounten, die Berechtigungen so eingerichtet hatte, dass nur Mitglieder einer bestimmten Gruppe den Inhalt lesen konnten. Ich habe alles von docker run -u userwithaccess
, docker run --privileged
versucht, einen Benutzer innerhalb der Dockerfile
hinzuzufügen und spezifisch die fragliche Gruppe diesem Benutzer zuzuweisen. Nichts hat geklappt.
Am Ende war die Lösung relativ einfach:
Das übergeordnete Verzeichnis meiner Daten Verzeichniszugriff für alle gelesen hatte, das heißt auch Benutzer, die nicht Mitglieder der Gruppe waren. So konnte ich es ohne Probleme montieren. Um die tatsächlichen Daten zu erreichen, habe ich den Benutzer in Dockerfile
zu die Gruppe hinzugefügt und sichergestellt, dass es den gleichen Namen und GID
hatte. Schließlich war es kein Problem, in das Datenverzeichnis zu navigieren und jede gewünschte Datei zu lesen.
So bin ich mir nicht sicher, ob das Verzeichnis, das ich zu mounten versuchte, nur ein Sonderfall ist oder ob es generell nicht möglich ist, ein Verzeichnis mit bestimmten Gruppenzugängen zu mounten. Ich fand diese Problemumgehung, aber ich hätte immer noch keine Lösung, wenn das Verzeichnis, das ich wollte, bei /
gewesen wäre.
Haben Sie versucht, es in 'privileged' Modus laufen zu lassen? – tgogos
ja, leider mit dem gleichen Ergebnis – Val