非root用户操作docker命令

一般非root用户不能操作docker命令,

原因

docker守护进程后台启动时,需要读取Unix套接字/var/run/docker.sock,这个文件root所有,docker用户组可操作,因此普通非docker组的用户没有权限访问

ll /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun  7 09:16 /var/run/docker.sock

解决方案

将用户添加到docker组

docker安装之后默认会创建docker组,docker组拥有读取套接字权限,因此将该普通用户加入docker组,该组下所有用户有访问unix套接字权限,最后刷新用户的初始组即可。
先查看是否有docker用户,如果没有需要手动增加

[root@jump-server ~]# cat /etc/group |grep docker
dockerroot:x:993:
docker:x:1007:dev

将普通用户添加到docker组

[dev@test kubeflow]$ gpasswd -a dev docker
Adding user dev to group docker

此时查看dev用户所在的组

[dev@test kubeflow]$ id
uid=512(dev) gid=1003(dev) groups=1003(dev),1029(docker)

PS:如果/var/run/docker.sock的用户组不是docker而是root需要使用chgrp修改一下
使用newgrp将新增加的组添加到用户组的集合中刷新,立即生效

 newgrp docker

gpasswd和newgrp

gpasswd是linux下组管理工具,用户添加用户到组和从组中删除用户,必须是sudo执行

[dev@test kubeflow]$ gpasswd --help
Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
...

命令执行以后,在当前终端不能立刻生效,需要使用newgrp将新增加的组添加到用户组的集合中刷新,立即生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值