Docker命令默认在Linux默认使用root用户执行,官方原文:

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 access it with sudo. For this reason, docker daemon always runs as the root user.
To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

docker守护程序绑定到Unix套接字而不是TCP端口。 默认情况下,Unix套接字由用户root拥有,其他用户可以使用sudo访问它。 因此,docker守护程序始终以root用户身份运行。
要避免在使用docker命令时使用sudo,请创建一个名为docker的Unix组并向其添加用户。 当docker守护程序启动时,它会使docker组对Unix套接字的所有权进行读/写。

但是我们自己使用的时候通常会觉得比较麻烦,以下步骤将用户加入Docker用户组,不需要使用sudo命令来执行docker的命令。

创建docker组

1
sudo groupadd docker

将当前用户加入docker组

1
sudo gpasswd -a ${USER} docker

重新启动docker服务(下面是CentOS7的命令)

1
sudo systemctl restart docker

当前用户退出系统重新登陆

重新登录后可以直接执行docker命令:

1
docker ps