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

Ref*_*Jan 17 docker minikube

当尝试使用 docker 驱动程序启动 minikube 时,作为 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.
Run Code Online (Sandbox Code Playgroud)

root用户使用docker driver有什么问题?

Dip*_*dal 22

这是一个安全问题。在官方的 docker文档中清楚地写出了风险。

根据文档 -

Docker 允许您在 Docker 主机和来宾容器之间共享目录;它允许您在不限制容器访问权限的情况下执行此操作。这意味着你可以启动一个容器,其中/host目录就是你主机上的/目录;并且容器可以不受任何限制地更改主机文件系统。

要解决您的问题,您可以按照以下步骤操作:
添加新用户
adduser newUser
usermod -aG sudo newUser
su - newUser
Run Code Online (Sandbox Code Playgroud)
登录新创建的用户
su - newUser
Run Code Online (Sandbox Code Playgroud)
将用户添加到 Docker 组
sudo groupadd docker
sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)
重新登录并使用以下命令启动 minikube
minikube start --driver=docker
Run Code Online (Sandbox Code Playgroud)
验证 minikube 正在运行
docker ps
Run Code Online (Sandbox Code Playgroud)

这是一个 github问题,你可以看看。

更新我的答案,因为如果此步骤能够解决安全问题,它会引起混乱

此步骤将解决您在尝试启动 minikube 时遇到的错误。但此步骤并不能解决安全问题,因为 docker 组授予相当于 root 用户的权限。要在没有 root 权限(又名无根模式)的情况下运行 docker,您需要遵循此文档

  • 当您运行这些步骤将用户添加到 docker 组时,您就为该用户授予了对主机上 root 帐户的无密码访问权限。所以我不确定这解决了什么问题。 (2认同)