minikube -为什么“docker”驱动程序不应与root权限一起使用

vptzau2j  于 2023-03-01  发布在  Docker
关注(0)|答案(3)|浏览(747)

当尝试启动minikube与docker驱动程序,作为一个根用户,我得到:

$ 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驱动程序有什么问题?

56lgkhnf

56lgkhnf1#

这是一个安全问题。在官方docker文件中写得很清楚的风险。
根据文件-
Docker允许您在Docker主机和访客容器之间共享目录;它允许你在不限制容器访问权限的情况下启动容器,这意味着你可以启动一个/host目录是你主机上的/目录的容器;并且容器可以不受任何限制地更改主机文件系统。

要解决您的问题,请执行以下步骤:
添加新用户
adduser newUser
usermod -aG sudo newUser
su - newUser
登录到新创建的用户
su - newUser
将用户添加到Docker组
sudo groupadd docker
sudo usermod -aG docker $USER
使用以下命令重新登录并启动minikube
minikube start --driver=docker
验证minikube是否正在运行
docker ps

这里有一个github issue,你可以看看。

更新我的答案,因为它会引起混淆,这些步骤是否能解决安全问题

以下步骤将解决您在尝试启动minikube时遇到的错误。但这些步骤不会解决安全问题,因为docker组赠款的权限等同于root用户。要在没有root权限的情况下运行docker,即无根模式,您需要遵循以下documentation

9rbhqvlz

9rbhqvlz2#

以root用户身份登录并运行以下命令。

useradd testuser
usermod -aG docker testuser

su - testuser(或打开另一个终端并登录到testuser)

minikube start --driver=docker

它的作品!

xzv2uavs

xzv2uavs3#

您现在使用的是哪个用户?在终端上键入。

whoami

echo $USER

然后你可以看到你的用户名。但这不是强制性的。

只需使用以下cmd将用户添加到Docker组

sudo usermod -aG docker $USER

相关问题