Как запустить сам докер-контейнер как пользователь без полномочий root
У меня есть образ контейнера докера, который мне нужно запустить как пользователь без полномочий root.
Добавление пользователя в группу Docker делает это, но так как это дает пользователю полный контроль над системой, я не могу использовать этот метод.
Предоставление разрешений sudo и выполнение команды docker run - это еще один способ, но с помощью sudo право владения командой запуска контейнера все еще остается с "root". (Мне нужно, чтобы пользователь указывал в качестве владельца)
Я могу указать время выполнения пользователя в команде docker run. При этом я вижу, что могу работать без полномочий root "внутри" контейнера. Я все еще должен префикс команды запуска контейнера с sudo, и контейнер запускается "root"
Я не могу добавить пользователя без полномочий root в Dockerfile, так как изображение контейнера не создано нами.
Можно ли каким-либо образом выполнить контейнер Docker без полномочий root без ущерба для безопасности? Есть ли способ, что пользователь может быть добавлен в группу Docker, но привилегии ограничены, и пользователь не получает полный root-контроль над системой?
1 ответ
По умолчанию команда docker может запускаться только пользователем root или пользователем из группы docker, которая автоматически создается во время процесса установки Docker.
Если вы не хотите вводить sudo при каждом запуске команды docker, добавьте свое имя пользователя в группу docker:
sudo usermod -aG docker ${USER}
Чтобы применить новое членство в группе, выйдите из сервера и снова войдите в систему или введите следующее:
su - ${USER}
Вам будет предложено ввести пароль вашего пользователя, чтобы продолжить.
Убедитесь, что ваш пользователь теперь добавлен в группу Docker, набрав:
id -nG