【Docker】解决vscode中启用docker扩展显示无权限的问题

【Docker】解决 VSCode 中启用 Docker 扩展显示无权限的问题

问题描述

为了用 VSCode 打开容器内的代码,方便调试,安装 VSCode 中的 Docker 扩展。但是发现显示如下报错:

bash 复制代码
ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: dial unix /var/run/docker.sock: connect: permission denied

解决方法

1. 将用户添加到 Docker 组

首先,确保当前用户已被添加到 Docker 组。可以通过以下命令将用户添加到 Docker 组(假设用户名为 your_username):

bash 复制代码
sudo usermod -aG docker your_username

添加后,您需要注销并重新登录,以便更改生效。

2. 确保 Docker 服务正在运行

确认 Docker 服务已经启动。您可以使用以下命令检查 Docker 服务的状态:

bash 复制代码
sudo systemctl status docker

如果服务没有运行,可以使用以下命令启动:

bash 复制代码
sudo systemctl start docker

3. 检查 Docker 套接字权限

确保 Docker 套接字 /var/run/docker.sock 的权限设置正确。您可以使用以下命令查看权限:

bash 复制代码
ls -l /var/run/docker.sock

正常情况下,输出应该是类似于以下内容:

plaintext 复制代码
srw-rw---- 1 root docker 0 date time /var/run/docker.sock

如果权限不正确,可以使用以下命令进行修复(注意:这通常不必要,因为 Docker 安装时会自动设置):

bash 复制代码
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

4. 使用 newgrp 命令

在某些情况下,VSCode 的终端可能没有正确加载新的组权限。您可以使用 newgrp 命令激活 docker 组:

bash 复制代码
newgrp docker

这将使当前终端会话获得 Docker 组权限。

5. 重启 VSCode

如果上述步骤未解决问题,尝试退出并重新启动 VSCode,以确保它在启动时加载用户组更改。

6. 如果发现重启VScode后,docker扩展还是显示权限问题

可能是因为vscode的ssh server并没有重置,还是保留的老的权限。

  1. 关闭code-server:
bash 复制代码
ps aux|grep bin/code-server # find out process id
kill <process id>
  1. 然后重新登陆vscode。
    此时应该就可以正常使用docker extension啦!
相关推荐
suamt1 分钟前
记录windows下如何运行docker程序
运维·docker·容器
特立独行的猫a11 分钟前
低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器
docker·容器·harmonyos·鸿蒙pc
ghostwritten15 分钟前
Kubernetes 网络模式深入解析?
网络·容器·kubernetes
鋆雨无欢丶1 小时前
docker证书认证问题
运维·docker·容器
阿杰 AJie1 小时前
Docker 容器启动的全方位方法汇总
运维·docker·容器
原神启动11 小时前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
我的golang之路果然有问题1 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
gravity_w1 小时前
vscode配置SSH远程服务器
服务器·经验分享·vscode·ssh
Stark-C1 小时前
密码管理器的尽头,是自托管!极空间私有化部署『password-XL』
docker
牛奔1 小时前
Docker 容器无法停止的排障与解决全过程
运维·docker·云原生·容器·eureka