Я установил Докера CE из официального способного репозитория. Для предоставления доступа обычных пользователей Докеру я создал группу docker
и добавил каждого пользователя к этой группе. Все же, каждый раз, когда любой пользователь выполняет что-то в контейнере (docker run -d ...
), процессы выполняются под моим UID и файлами, которые они создают, имеют мое владение, например. myuser:myuser
вместо anotheruser:anotheruser
. Когда пользователи явно указывают свой UIDs (docker run -d --user $UID ...
), процессы правильно регистрируются в своем UIDs, но выводы принадлежат anotheruser:root
. Та спецификация группы (т.е. root
) беспокоит меня вполне немного. Что должно я делать к:
anotheruser:anotheruser
или anotheruser:docker
. Контейнеры докера выполняются демоном докера, который работает как корень. По умолчанию демон докера выполняет контейнеры как корень. Используя docker run --user={uid}:{gid}
, демону можно сказать выполнить контейнер как определенному пользователю и эффективной группе.
Добавляющие пользователи системы к docker
группа дает им полномочие взаимодействовать с демоном докера. Это включает стартовые контейнеры как корень. Поэтому любой пользователь добавил к docker
, группе нужно доверять.
Примечание, что docker
групповые пользователи могли смонтировать хост /
внутренняя часть контейнер и таким образом иметь корневой доступ ко всей файловой системе хоста. Следовательно доверительное требование.
Короче говоря, ответ на , "как, я всегда делаю пользователей, выполняемые контейнеры докера под их собственным идентификатором пользователя" : путем просьбы, чтобы они сделали так. Скажите им всегда вызывать docker run
как:
docker run --user=$(id -u):$(id -g) ...
Включая uid
и gid
решает Ваш второй вопрос.Примечание: ПОЛЬЗОВАТЕЛЬ может также быть указан в DockerFile, определяющем изображение, но затем называет uid определенным в контейнере.
Докер работает как в масштабе всей системы, не на определенном пользователе. Это означает любой docker run
, будет выполнен как корень с услугами докера.
, Если Вы видите свой идентификатор в докере, это, вероятно, потому что у Вас есть идентификатор 1000, который является первым идентификатором пользователя. Многие Докер выполняет их собственный сервис с определенной учетной записью, этой учетной записью, могут большую часть времени использовать этот тот же идентификатор.