【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啦!
相关推荐
小章UPUP42 分钟前
Kubernetes (K8s) 与 Podman 的比较
容器·kubernetes·podman
忆~遂愿1 小时前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
说实话起个名字真难啊2 小时前
用docker来安装openclaw
docker·ai·容器
恬静的小魔龙2 小时前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
Zfox_3 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
春日见3 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡4 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
liu****4 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
暴走十八步5 小时前
PHP+vscode开启调试debug
开发语言·vscode·php
logocode_li5 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s