Права на примонтированный раздел Docker
Published on 14.02.2022
Для редактирования файлов в примонтированной папке не от root не хватает прав. Есть варианты правильные, вроде использования bindfs, но я пошел по простому пути — создаем пользователя с таким же именем и uid.
Почему так: процесс в контейнере создается от пользователя в контейнере (обычно указывается как -u или USER в dockerfile). В хостовой системе такого пользователя нет. Попытка назначить другого пользователя на файлы или даже выдать 777 к успеху не приводят — docker достаточно оперативно исправляет права на файлы под себя.
Для решения проблемы создать группу и добавить в неё нужного пользователя к сожалению не достаточно.
Потому для начала смотрим имя пользователя в контейнере и его uid
docker exec -it <container_name> cat /etc/passwd
Теперь создадим пользователя с именем foundry и нужным uid (uid должен быть уникальным в системе)
useradd -d /home/f/docker/ -u 421 -m foundry
passwd foundry
-d задаем домашнюю папку (в нашем случае можно сразу указать на нужную директорию)
-u задаем uid
Затем меняем пароль.
Posted in: