Права на примонтированный раздел Docker

Для редактирования файлов в примонтированной папке не от 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
Затем меняем пароль.

Добавить комментарий