当前位置:首页 » 数据仓库 » 配置docker权限不够怎么弄
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

配置docker权限不够怎么弄

发布时间: 2023-06-05 14:55:56

‘壹’ Docker:非root用户启动操作docker

摘要: docker , linux

一般都是用root用户启动和操作docker,当是普通用户运行容器启动项目时报错没有权限

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

类似的Mysql客户端也可以使用socket进行连接,文件在/var/run/mysqld/mysqld.sock

默认是777权限,如果改成770,则非root用户或者非mysql组用户也将无法连接MySQL

退出升氏段root用户,普通用户无法报错无法通过socket连接

本质上还是使用root运行docker,只是在启动的时候可以以root用户启动docker,为了避免每次启动需要输入密码,需要给普通用户sudo权限以及可以免密码方式登录。
在/etc/sudoers文件中设置免密码

此时再使用sudo运行docker即可,在其他shell脚本中docker run前面增加sudo

如果不使用sudo则无权限操作docker

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

如果/var/run/docker.sock的用户组不是docker而是root需要使用 chgrp 修改一下

将普通用户添加到docker组

此时查看test用户所在的组

发现还是没有docker组,使用 newgrp 刷新以下用户的初始组

此时再次查看用户的组以已经出现docker

然后直接以用户操作docker即可

或者不使用newgrp直接重新登录即可

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

测试删除和添加test用户于docker组

此时退出终端重新登录则test的docker组消失,再添加进来

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

以后退出登录后新登录进来用户的用户组都会更新生效