通过用户组,让子用户可以直接使用docker命令。

说明

正常情况下,使用一个子用户来执行docker命令,会出现如下提示

1
2
$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json": dial unix /var/run/docker.sock: connect: permission denied

这个提示中的关键词是permission denied,即我们当前的子用户没有权限来执行这个命令。只有加上sudo之后才能以root身份执行这个命令。

操作

子用户可以通过加入docker的用户组的方式来直接使用docker命令

1
2
3
4
5
6
7
8
# 用户组配置
sudo groupadd docker # 创建docker用户组(安装docker的时候会被创建)
sudo usermod -aG docker ${USER} # 当前子用户加入docker用户组
sudo systemctl restart docker # 重启docker服务

# 在子用户中执行如下命令
newgrp docker # 用相同的用户,以docker群组的身份登录bash
docker ps # 现在不用sudo也能执行docker命令了

执行了上面这些命令后,不需要sudo子用户也可以执行docker命令啦。