Докер: другие пользователи выполняют свои контейнеры как мой пользователь по умолчанию

Я установил Докера CE из официального способного репозитория. Для предоставления доступа обычных пользователей Докеру я создал группу docker и добавил каждого пользователя к этой группе. Все же, каждый раз, когда любой пользователь выполняет что-то в контейнере (docker run -d ...), процессы выполняются под моим UID и файлами, которые они создают, имеют мое владение, например. myuser:myuser вместо anotheruser:anotheruser. Когда пользователи явно указывают свой UIDs (docker run -d --user $UID ...), процессы правильно регистрируются в своем UIDs, но выводы принадлежат anotheruser:root. Та спецификация группы (т.е. root) беспокоит меня вполне немного. Что должно я делать к:

  1. Сделайте других пользователей выполненными докерами под их UIDs только;
  2. Заставьте их вывод зарегистрироваться как anotheruser:anotheruser или anotheruser:docker.
2
задан 8 August 2018 в 16:32

2 ответа

Контейнеры докера выполняются демоном докера, который работает как корень. По умолчанию демон докера выполняет контейнеры как корень. Используя docker run --user={uid}:{gid}, демону можно сказать выполнить контейнер как определенному пользователю и эффективной группе.

Добавляющие пользователи системы к docker группа дает им полномочие взаимодействовать с демоном докера. Это включает стартовые контейнеры как корень. Поэтому любой пользователь добавил к docker, группе нужно доверять.

Примечание, что docker групповые пользователи могли смонтировать хост / внутренняя часть контейнер и таким образом иметь корневой доступ ко всей файловой системе хоста. Следовательно доверительное требование.

Короче говоря, ответ на , "как, я всегда делаю пользователей, выполняемые контейнеры докера под их собственным идентификатором пользователя" : путем просьбы, чтобы они сделали так. Скажите им всегда вызывать docker run как:

docker run --user=$(id -u):$(id -g) ...

Включая uid и gid решает Ваш второй вопрос.Примечание: ПОЛЬЗОВАТЕЛЬ может также быть указан в DockerFile, определяющем изображение, но затем называет uid определенным в контейнере.

2
ответ дан 2 December 2019 в 01:53

Докер работает как в масштабе всей системы, не на определенном пользователе. Это означает любой docker run, будет выполнен как корень с услугами докера.

, Если Вы видите свой идентификатор в докере, это, вероятно, потому что у Вас есть идентификатор 1000, который является первым идентификатором пользователя. Многие Докер выполняет их собственный сервис с определенной учетной записью, этой учетной записью, могут большую часть времени использовать этот тот же идентификатор.

3
ответ дан 2 December 2019 в 01:53

Другие вопросы по тегам:

Похожие вопросы: