官方文档权限介绍

The Docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user `root` and other users can only access it using `sudo`. The Docker daemon always runs as the `root` user.

If you don’t want to preface the docker command with sudo, create a Unix group called docker and add users to it. When the Docker daemon starts, it creates a Unix socket accessible by members of the docker group.

Docker守护进程绑定到一个Unix套接字,而不是一个TCP端口。默认情况下,Unix 套接字由用户 root 拥有,其他用户只能使用 sudo 访问它。.Docker守护进程总是以root用户的身份运行。

如果你不想在docker命令前加上sudo,可以创建一个名为docker的Unix组,并将用户加入其中。当Docker守护进程启动时,它会创建一个Unix套接字,供docker组的成员访问。

普通用户执行权限添加

1、创建 docker 用户组

sudo groupadd docker

2、添加你想用普通用户权限的用户名到 docker 用户组

sudo usermod -aG docker $USER

3、系统重启后就可以使用普通用户权限执行 docker, 如果不想重启,可以使用下面的命令更新并激活组权限

newgrp docker

4、验证设置是否成功

docker run hello-world 

如果出现下面错误提示,重启电脑即可。

WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied