Verwaltung von Datei-Berechtigungen
Beibehaltung von Datei-Berechtigungen
Beim Übertragen von Dateien zwischen dem Host und dem Container ist es wichtig, die Datei-Berechtigungen zu erhalten. Dies ist besonders wichtig, wenn der Container als Nicht-Root-Benutzer ausgeführt wird, da der Container-Benutzer möglicherweise nicht über die erforderlichen Berechtigungen verfügt, um auf die Dateien zuzugreifen.
Um Datei-Berechtigungen bei Verwendung von Volumes oder bind Mounts zu erhalten, können Sie das Flag --chmod
beim Mounten des Volumes oder Bind Mounts verwenden. Dadurch können Sie die gewünschten Berechtigungen für das gemountete Verzeichnis festlegen.
docker run -v /host/path:/container/path:rw,chmod=755 image
oder
docker run --mount type=bind,source=/host/path,target=/container/path,readonly,chmod=644 image
Chown im Container
Eine weitere Möglichkeit, Datei-Berechtigungen im Container zu verwalten, ist die Verwendung des Befehls chown
innerhalb des Containers, um Besitzer und Gruppe der Dateien zu ändern. Dies ist nützlich, wenn der Container als Nicht-Root-Benutzer ausgeführt wird und die Dateien einem anderen Benutzer oder einer anderen Gruppe gehören.
## Besitzer und Gruppe einer Datei ändern
docker exec my-container chown user:group /container/path/file.txt
## Besitzer und Gruppe eines Verzeichnisses rekursiv ändern
docker exec my-container chown -R user:group /container/path
Umgang mit Berechtigungen in Dockerfiles
Beim Erstellen eines Docker-Images können Sie die Datei-Berechtigungen auch im Dockerfile mithilfe des Befehls RUN
und der Befehle chmod
oder chown
festlegen.
## Berechtigungen für eine Datei festlegen
RUN chmod 644 /container/path/file.txt
## Besitzer und Gruppe einer Datei ändern
RUN chown user:group /container/path/file.txt
Durch die Verwaltung von Datei-Berechtigungen im Dockerfile stellen Sie sicher, dass die Dateien beim Starten des Containers die korrekten Berechtigungen haben.