Docker守候进程绑定的是一个unix socket,而不是TCP端口。这个套接字默认的属主是root,其他是用户可以使用sudo命令来访问这个套接字文件。因为这个原因,docker服务进程都是以root帐号的身份运行的。咱们也知道一直使用root用户存在着巨大风险,操作docker总不能一直用root用户吧。
为了避免长期使用root用户,我们可以创建新的用户并给该用户做上sudo认证,让其通过sudo执行需要root权限的命令,这是个解决问题的好办法,但是在操作docker的时候总不能每次都加上sudo吧?这也太烦人了。能不能不加sudo就执行docker命令呢?当docker进程启动的时候,只需要设置该套接字可以被docker这个分组的用户读写。这样只要是在docker这个组里面的用户就可以直接执行docker命令了。
下面咱们创建一个dkmg(dockermanage)的用户,在不完成sudo认证的前提下,操作docker。GO~Go~go~
先切换回root用户,不然没权限:
那就开始吧:
切换到新用户这时候是没有操作docker的权限的
下面创建docker用户组的方式给新用户附加操作docker的权限:
切换回root用户:
groupadd docker
如果有就提示“docker组已存在”
将新用户添加到docker用户组
usermod −aG docker [non−root user]
验证下新用户是否具备操作docker的权限:
切换到新用户:
由上图可以看到普通用户已经具备操作docker的权限了。