Ubuntu Linux下无需sudo运行Docker的解决方案求助
无需sudo运行Docker的排查与解决步骤
确认用户组归属
- 执行
cat /etc/group | grep docker验证docker组是否存在 - 执行
id -nG $USER检查当前用户是否已在docker组中,若未显示则重新执行sudo usermod -aG docker $USER并彻底注销后重新登录
- 执行
修正docker.sock的所属组
执行ls -l /var/run/docker.sock查看socket文件权限,确保所属组为docker。若不符,执行sudo chgrp docker /var/run/docker.sock(此操作仅修正组归属,无过度权限开放风险)检查Docker守护进程配置
查看Docker daemon的启动配置文件:- 检查
/etc/docker/daemon.json中是否存在限制socket权限的配置 - 检查systemd服务配置(如
/usr/lib/systemd/system/docker.service或/etc/systemd/system/docker.service.d/override.conf),确保启动参数未修改socket的权限设置,当前启动命令/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock无异常时可跳过此步骤
- 检查
刷新用户组会话
执行su - $USER重新初始化用户会话,或完全关闭终端后重新打开,确保组权限生效排查安全模块干扰
- 若系统启用SELinux,执行
getenforce查看状态,若为Enforcing,临时执行sudo setenforce 0测试是否为SELinux导致权限问题 - 若系统启用AppArmor,检查相关配置是否限制了用户对docker.sock的访问
- 若系统启用SELinux,执行
内容的提问来源于stack exchange,提问作者SKrish
相关产品推荐
相关产品推荐

