Ubuntu下VS Code报错无法连接Docker 终端运行Docker命令正常
解决方案
这个问题绝大多数场景是当前Linux用户未加入docker用户组,导致VS Code进程无权限访问Docker的Unix套接字/var/run/docker.sock,而你终端执行sudo docker ps是用root权限运行,所以能正常返回结果。可按以下顺序排查解决:
1. 把当前用户加入docker用户组
执行命令:
sudo usermod -aG docker $USER
执行完成后,必须注销当前系统用户再重新登录,或者执行以下命令临时生效(仅对当前终端窗口有效):
newgrp docker
验证配置生效:直接执行docker ps,不需要加sudo也能正常返回容器列表即配置成功。之后重启VS Code即可正常连接Docker。
2. 验证Docker套接字权限
如果完成第一步后仍报错,检查套接字的属组和权限:
执行命令查看:
ls -l /var/run/docker.sock
正常输出应该包含属组为docker,权限为srw-rw----。如果属组不对,执行:
sudo chgrp docker /var/run/docker.sock
如果权限不对,执行:
sudo chmod 660 /var/run/docker.sock
修改完成后重启Docker服务:
sudo systemctl restart docker
3. 检查VS Code Docker扩展配置
- 确认你已经安装了官方的Docker扩展,且升级到最新版本
- 打开VS Code设置,搜索
Docker: Host,确认配置值为默认的unix:///var/run/docker.sock,没有被修改为其他地址
4. Snap版VS Code专属问题
如果你是通过Snap商店安装的VS Code,沙箱限制会默认阻止访问Docker套接字,执行以下命令开放权限即可:
sudo snap connect code:docker-support
如果仍无法解决,建议卸载Snap版本,安装VS Code官方提供的Deb安装包。
报错截图参考:

内容的提问来源于stack exchange,提问作者Milad
相关产品推荐
相关产品推荐

