Ubuntu 22.04普通用户执行docker run报错:无法连接Docker守护进程
解决普通用户Docker连接报错问题
核心问题分析
报错里的socket路径unix:///home/hexa/.docker/desktop/docker.sock说明你的环境变量指向了Docker Desktop的socket,但你大概率是通过apt安装的Docker Engine,或者Docker Desktop服务未启动,导致无法正常连接。
具体修复步骤
1. 检查并修正Docker环境变量
先查看当前是否设置了错误的DOCKER_HOST:
echo $DOCKER_HOST
如果输出为unix:///home/hexa/.docker/desktop/docker.sock,执行以下操作:
- 临时生效(仅当前终端):
之后直接测试unset DOCKER_HOSTdocker run hello-world。 - 永久生效(所有终端):
编辑用户shell配置文件(比如~/.bashrc或~/.zshrc,根据你使用的shell),找到设置DOCKER_HOST的行并删除,然后执行:source ~/.bashrc # 对应bash环境,zsh则用source ~/.zshrc
2. 确认Docker Engine服务状态
检查Docker Engine是否在运行:
sudo systemctl status docker
如果服务未启动,执行以下命令启动并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
3. 让用户组权限立即生效
之前执行过sudo usermod -aG docker $USER,但需要执行以下命令让权限立即生效(无需重新登录):
newgrp docker
之后再次测试docker run hello-world。
4. 修复Docker Socket权限
检查/var/run/docker.sock的权限是否正确:
ls -l /var/run/docker.sock
正确的权限输出应该是所属组为docker,类似:
srw-rw---- 1 root docker 0 Aug 20 10:00 /var/run/docker.sock
如果权限不对,执行:
sudo chown root:docker /var/run/docker.sock sudo chmod 660 /var/run/docker.sock
内容的提问来源于stack exchange,提问作者user23488513
相关产品推荐
相关产品推荐

