docker - minikube - 为什么“docker”驱动程序不应该与 root 权限一起使用
问题描述
当尝试使用 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.
以 root 用户身份使用 docker 驱动程序有什么问题?
解决方案
这是一个安全问题。在官方 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问题,你可以看看。
更新我的答案,因为如果此步骤将解决安全问题会引起混乱
此步骤将解决您在尝试启动 minikube 时遇到的错误。但是这个步骤并不能解决安全问题,因为 docker group 授予的权限等同于 root 用户。要在没有 root 权限(即无 root 模式)的情况下运行 docker,您需要遵循此文档。
推荐阅读
- java - 图书馆找不到自己的“子图书馆”
- python - Pandas 仅替换包含数字的列的数字
- node.js - Node.js 的 GraphicsMagick 可以处理不固定数量的图像以输出 GIF 序列吗?
- android - 查看绑定问题
布局 - mysql - 如何在开始时对特定值进行排序?
- logging - 使用 Graph API 从 Office365 获取日志
- django - Docker 和 POSTGRESQL
- node.js - Node.js、Angular、express-session:由于 cookie 策略(sameSite cookie),Chrome 80 不保存会话
- node.js - 在 npm-cache 目录中,除了 _cacache 之外的文件夹是干什么用的?
- algorithm - 冒泡排序需要多少遍?