миникуб — Почему драйвер «docker» не следует использовать с правами суперпользователя

#docker #minikube

Вопрос:

При попытке запустить minikube с драйвером docker, как пользователь root, я получаю:

 $ minikube start --driver=docker
* minikube v1.16.0 on Ubuntu 18.04
* Using the docker driver based on user configuration
* The "docker" driver should not be used with root privileges.
* If you are running minikube within a VM, consider using --driver=none:
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/

X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
 

В чем проблема использования драйвера docker в качестве пользователя root?

Комментарии:

1. github.com/kubernetes/minikube/issues/…

Ответ №1:

Это вопрос безопасности. В официальной документации докера четко написано о рисках.

Согласно документации —

Docker позволяет вам совместно использовать каталог между хостом Docker и гостевым контейнером; и это позволяет вам делать это без ограничения прав доступа к контейнеру. Это означает, что вы можете запустить контейнер, в котором каталог /host является каталогом / на вашем хосте; и контейнер может изменять файловую систему вашего хоста без каких-либо ограничений.

Чтобы решить вашу проблему, вы можете выполнить следующие действия:
Добавить нового Пользователя
 adduser newUser
usermod -aG sudo newUser
su - newUser
 
Войдите в систему для вновь созданного пользователя
 su - newUser
 
Добавить пользователя в группу Docker
 sudo groupadd docker
sudo usermod -aG docker $USER
 
Перезагрузите и запустите мини-куб с помощью следующих команд
 minikube start --driver=docker
 
Убедитесь, что мини-куб запущен
 docker ps
 

Вот проблема с github, на которую вы можете взглянуть.

Обновляю свой ответ, поскольку это вызывает путаницу, если эти шаги решат проблемы безопасности

Эти шаги устранят ошибку, с которой вы столкнулись при попытке запустить minikube. Но эти шаги не решат проблемы безопасности, поскольку группа docker предоставляет привилегии, эквивалентные привилегиям пользователя root. Чтобы запустить docker без прав root, он же безродный режим, вам необходимо следовать этой документации.

Комментарии:

1. При выполнении этих действий для добавления пользователя в группу docker вы предоставили этому пользователю доступ без пароля к учетной записи root на хосте. Так что я не уверен, что это решило.

2. Эти шаги решат проблему, с которой сталкивается @RafaelJan. Но эти шаги не решат проблемы безопасности, поскольку группа docker предоставляет привилегии, эквивалентные привилегиям пользователя root. Чтобы запустить docker как без привилегий root, ему необходимо следовать этой документации docs.docker.com/engine/security/rootless

Ответ №2:

Войдите в систему как пользователь root и выполните следующие команды.

 useradd testuser
usermod -aG docker testuser
 

su — testuser (или откройте другой терминал и войдите в testuser)

 minikube start --driver=docker
 

его работы!