Linux 下普通用户不通过 sudo 使用 docker 命令

Linux 环境下普通用户没有执行 docker 命令的权限是因为 Docker 的安全设计。Docker 守护进程(daemon)默认以 root 用户身份运行,因为它需要访问系统的底层资源来管理容器。出于安全考虑,普通用户(非 root 用户)不应该能够直接执行可能具有破坏性的 Docker 命令。

但是,Docker 提供了一种机制,允许普通用户通过 Docker 用户组(通常是 docker 组)来执行 Docker 命令,而无需使用 sudo。这是通过将用户添加到 docker 组来实现的。一旦用户成为 docker 组的成员,他们就可以执行 Docker 命令,因为 Docker 守护进程会检查执行命令的用户是否属于 docker 组,并据此授予相应的权限。

要允许普通用户执行 Docker 命令,你需要执行以下步骤:

1. 将用户添加到 docker 组(Docker 安装过程中通常会创建 docker 组)

# 可通过 grep docker /etc/group 判断 docker 组是否存在

# 若 docker 组不存在,可先创建 docker 组

sudo groupadd docker

# 若 docker 组存在,可直接将普通用户加入到 docker 组中。( $USER 是一个环境变量,代表当前登录的用户名,也可以将其替换为具体的用户名)

sudo gpasswd -a $USER docker 或 sudo usermod -aG docker $USER 

2. 重启服务并刷新 docker 组成员

sudo systemctl restart docker 

newgrp - docker

# 实操并验证

posted @ 2024-06-20 10:24  demoduan  阅读(165)  评论(0编辑  收藏  举报