如何 让ubuntu 在root 下安装的docker 在 普通用户下也能用
在 Ubuntu 系统中,如果 Docker 是以 root 用户安装的,普通用户默认无法直接使用 Docker 命令(会报权限错误)。要让普通用户也能使用 Docker,可以按照以下步骤操作:
方法 1:将用户加入 docker
用户组(推荐)
Docker 安装时会自动创建一个名为 docker
的用户组,将普通用户加入该组即可获得权限。
-
创建
docker
用户组(如果尚未存在)sudo groupadd docker
-
将当前用户加入
docker
组sudo usermod -aG docker $USER
$USER
是当前用户名,也可以替换为目标用户名(如sudo usermod -aG docker username
)。
-
刷新用户组权限
- 退出当前终端并重新登录,或者运行以下命令立即生效:
newgrp docker
- 退出当前终端并重新登录,或者运行以下命令立即生效:
-
验证是否生效
docker run hello-world
- 如果成功运行,说明配置正确。
方法 2:直接修改 Docker 的权限(不推荐)
如果不想将用户加入 docker
组,可以临时修改 Docker 套接字文件的权限(但存在安全风险):
sudo chmod 666 /var/run/docker.sock
- 注意:这会允许所有用户访问 Docker,可能导致提权漏洞,仅建议在测试环境使用。
方法 3:通过 sudo
运行 Docker 命令
如果不想配置用户组,可以在每条 Docker 命令前加 sudo
:
sudo docker ps
- 也可以通过
visudo
配置免密码 sudo 权限,但同样存在安全风险。
补充说明
-
安全提醒:
docker
用户组实际上拥有与 root 等效的权限(因为 Docker 守护进程以 root 运行)。仅将受信任的用户加入该组。- 生产环境中建议结合 Docker 的 TLS 认证或细粒度授权插件(如
authz
)进行权限控制。
-
如果
docker
组不存在:- 可能是 Docker 未正确安装。重新安装 Docker:
sudo apt update sudo apt install docker.io
- 可能是 Docker 未正确安装。重新安装 Docker:
-
持久化配置:
- 上述方法 1 的配置是永久生效的,重启后无需重复操作。
通过以上步骤,普通用户即可无需 sudo
直接使用 Docker 命令。推荐使用 方法 1,既方便又相对安全。