Docker安装:ERROR: permission denied....connect: permission denied errors...

ERROR: permission denied....connect: permission denied errors pretty printing info

一、问题描述

scss 复制代码
k8s@k8s-virtual-machine:~$ docker info
Client:
 Version:    27.5.1
 Context:    default
 Debug Mode: false

Server:
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/info": dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info

在 root 用户下,输出正常,在普通用户下,出现如上报错信息。出现这个错误通常是因为当前用户虽然加入了 docker 组,但组权限尚未生效。

二、排查思路

2.1 确认用户已加入 docker 组

运行一下命令检查当前用户是否在 docker 组中:

ruby 复制代码
k8s@k8s-virtual-machine:~$ groups
k8s adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

或者指定用户名,这里我的用户名是 k8s:

ruby 复制代码
k8s@k8s-virtual-machine:~$ groups k8s
k8s : k8s adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

如上,我们可以看到 docker 包含在里面,说明已经加入到用户组里面,否则就需要重新执行添加命令:

bash 复制代码
sudo usermod -aG docker $USER(这里是你的用户名)

2.2 确保组权限生效

用户组权限变更后,需要重新登录(或重启系统)才能生效。比如我们在 root 目录下执行了下载、启动 docker,然后给当前用户加入到了 docker 组。一般我们需要退出系统(命令执行:exit),再重新登录一次,好让修改用户组的命令 usermod 生效。但是有时候不一定就生效,就像我这次安装一样,就没有生效。

验证是否生效:

bash 复制代码
# 临时切换到docker组(部分环境可能不生效,建议优先重新登录)
newgrp docker 

2.3 检查 Docker 套接字文件的权限

运行以下命令,查看 /var/run/docker.sock 的权限:

bash 复制代码
k8s@k8s-virtual-machine:~$ ls -l /var/run/docker.sock 

# 正常输出如下:
srw-rw---- 1 root docker 0  7月 29 10:51 /var/run/docker.sock

否则,需要修复权限:

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

2.4 检查 Docker 服务状态

lua 复制代码
sudo systemctl status docker

如果未启动,请启动 Docker 服务

sql 复制代码
sudo systemctl start docker

2.5 系统重启

系统关机重启,让其生效。

三、测试 Docker 命令

复制代码
docker info

输出结果:

scss 复制代码
k8s@k8s-virtual-machine:~$ docker info
Client:
 Version:    27.5.1
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 27.5.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
.....

可以看到问题已解决,后续遇到类似问题,按照这个思路逐步排查:1、确认组成员身份;2、重新登录生效;3、验证文件权限;4、检查服务状态;5、系统重启;

如上,希望对你有价值,祝你学习进步。

相关推荐
JeJe同学9 小时前
Docker镜像导入、容器启动
linux·运维·docker
元Y亨H14 小时前
基于 Jenkins + Docker 的前端(Vben Admin)CI/CD 踩坑
docker·jenkins
白兰地空瓶15 小时前
项目要上线了,我连夜学完 Docker:从底层原理到容器化部署全记录
docker·全栈
Knight_AL17 小时前
PostgreSQL Docker 数据库备份:pg_dump 与 SQL 格式备份的区别
数据库·docker·postgresql
灯澜忆梦18 小时前
【docker】#1 | Docker 初识
运维·docker·容器
骑着蜗牛撵大象32719 小时前
穿越 Docker 内核迷雾:镜像分层的叠加态与卷挂载的空间穿梭
运维·docker·容器·联合文件系统·卷挂载·镜像分层·存储驱动
goehou19 小时前
AI 应用上线实战:从本地脚本到 Docker 容器化(密钥、健康检查、镜像瘦身)
docker·ai·llm·部署·教程·容器化
吴声子夜歌19 小时前
Docker入门与实战——Docker数据管理
docker·容器
程序员老赵19 小时前
Docker 部署 TeslaMate:轻松搭建特斯拉车辆数据记录平台
docker·容器·开源
java_logo20 小时前
Docker 部署 Emby:轻松搭建家庭影音媒体服务器
服务器·docker·nas·emby·飞牛nas·群晖nas·轩辕镜像