minikube - Why The "docker" driver should not be used with root privileges

Viewed 10053

When trying to start minikube with docker driver, as a root user I get:

$ 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.

What is the problem to use docker driver as a root user?

2 Answers

This is a question of security. In official docker documentation written clearly about the risks.

As per documentation -

Docker allows you to share a directory between the Docker host and a guest container; and it allows you to do so without limiting the access rights of the container. This means that you can start a container where the /host directory is the / directory on your host; and the container can alter your host filesystem without any restriction.

To solve your problem you can follow these steps:
Add new User
adduser newUser
usermod -aG sudo newUser
su - newUser
Login to the newly created User
su - newUser
Add User to the Docker Group
sudo groupadd docker
sudo usermod -aG docker $USER
Relogin and the start minikube with this following commands
minikube start --driver=docker
Verify minikube is running
docker ps

Here is a github issue you may have a look.

Updating my answer as it is causing confusion if this steps will solve the security issues

This steps will solve the error you were facing when you were trying to start minikube. But this steps won't solve the security issues because docker group grants privileges equivalent to the root user. To run docker without root privilege aka rootless mode you need to follow this documentation.

Login to root user and run below commands.

useradd testuser
usermod -aG docker testuser

su - testuser (or open another terminal and login to testuser)

minikube start --driver=docker

its works!

Related