Docker daemon无sudo无法运行 非root配置后仍报错如何解决
问题现象
- 不加
sudo执行Docker命令时,Docker daemon无法正常响应;加sudo执行时所有Docker功能运行正常 - 按照非root用户访问Docker的方法配置后,Docker daemon仍无法启动,尝试重启系统、注销账号重登均无法解决问题
- 非root权限下Docker调用异常,导致VS Code、Docker Desktop无法正常使用Docker功能
解决步骤
按顺序执行以下命令即可修复:
- 先确认docker用户组存在,不存在则手动创建:
getent group docker || sudo groupadd docker
- 将当前登录用户加入docker用户组,注意必须带
-aG参数,缺-a会覆盖用户原有附加组,直接导致sudo权限丢失:
sudo usermod -aG docker $USER
- 刷新当前终端会话的用户组权限,不需要注销或重启系统:
newgrp docker
- 修复Docker套接字文件和用户配置目录的权限:
sudo chmod 660 /var/run/docker.sock sudo chown root:docker /var/run/docker.sock sudo chown -R $USER:$USER ~/.docker/
- 验证配置是否生效:
docker ps
如果能正常输出当前运行的容器列表,不带任何权限报错,就说明配置完成,VS Code和Docker Desktop也可以正常识别Docker服务了。
注意事项
- 不要为了省事直接给
/var/run/docker.sock设置777权限,会带来不必要的安全风险 - 如果后续更新Docker或者重装Docker Desktop后再次出现权限问题,重新执行一遍上述步骤即可
- 如果执行完
newgrp docker后新开终端还是报错,直接重启系统一次即可让全局用户组配置生效
内容的提问来源于stack exchange,提问作者Alexey Razmanov
相关产品推荐
相关产品推荐

