Том Docker и разрешения хоста - PullRequest
       5

Том Docker и разрешения хоста

0 голосов
/ 23 декабря 2018

Когда я запускаю образ Docker, например, например

docker run -v /home/n1/workspace:/root/workspace -it rust:latest bash

, и я создаю каталог в контейнере, например

mkdir /root/workspace/test

Он принадлежит пользователю root на моем хост-компьютере.Что приводит к тому, что мне приходится менять разрешения каждый раз после того, как я переворачиваю контейнер, чтобы иметь возможность работать с этим каталогом.

Есть ли способ, как сказать Docker для обработки каталогов и файлов с моего компьютера (хост-компьютера)) точка зрения под определенным пользователем?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Вам необходимо запустить приложение с тем же идентификатором uid внутри контейнера, что и на хосте, чтобы сопоставить владельца файла.Мое собственное решение для этого состоит в том, чтобы запустить контейнер как root, настроить uid пользователя в контейнере в соответствии с монтированием тома, а затем su, чтобы пользователь запустил приложение.Сценарии для этого можно найти в этом репо: https://github.com/sudo-bmitch/docker-base

В этом репозитории сценарий fix-perms обрабатывает изменение uid / gid внутри контейнера, а сценарий точки входа имеет exec gosu $username "$@", которыйзапускает приложение как выбранный пользователь.

0 голосов
/ 23 декабря 2018

Конечно, потому что Docker использует root в качестве пользователя по умолчанию.Вы должны создать пользователя в вашем Docker-контейнере, переключиться на него и затем создать папку, после чего вы получите его без корневых прав на вашем хост-компьютере.

Dockerfile

FROM rust:latest
...
RUN useradd -ms /bin/bash myuser
USER myuser
...