如何解决非root用户没有权限运行docker命令的问题?

简介: Got permission denied while trying to connect to the Docker daemonsocket at unix:///var/run/docker.sock: Gethttp://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix/var/run/docker.sock: connect: permission denied

问题描述:

”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.26/images/json: dial unix
/var/run/docker.sock: connect: permission denied“

原因(摘自docker手册):

Manage Docker as a non-root user

The docker daemon binds to a Unix socket instead of a TCP port. By
default that Unix socket is owned by the user root and other users can
only access it using sudo. The docker daemon always runs as the root
user.

If you don’t want to use sudo when you use the docker command, create
a Unix group called docker and add users to it. When the docker daemon
starts, it makes the ownership of the Unix socket read/writable by the
docker group.

答案显而易见,要不用root用户,要不创建一个名为docker的用户组,并把你需要使用docker的非root用户添加到该组中,如果还不会搞,继续往下看。

方法1:
使用sudo获取管理员权限,运行docker命令,这个方法在通过脚本执行docker命令的时候会有很多局限性

方法2:
docker守护进程启动的时候,会默认赋予名为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
阿里云双11服务器一折起

目录
相关文章
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
673 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
5月前
|
文字识别 Java 数据安全/隐私保护
10 分钟上手 Stirling PDF:阿里云 ECS Docker 部署 PDF 工具箱
Stirling PDF 是一款开源、可本地部署的 Web PDF 工具箱,支持合并、拆分、压缩、加水印、文本编辑等60+功能。文件仅在内存中临时处理,自动清理,安全私有。本文详解10分钟 Docker 部署(Ubuntu 24.04 实测),含 ultra-lite 镜像快速启动、中文配置与实操验证。
1014 0
|
4月前
|
人工智能 自然语言处理 数据挖掘
通义千问 Token Plan 重磅上新!2.4T 参数 Qwen3.8-Max 抢先体验,夜间调用 0.2 折
千问AI推出Token Plan订阅计划,以统一Credits体系覆盖文本、图像、视频全模态,首发2.4万亿参数Qwen3.8-Max与HappyHorse1.1视频引擎;支持日间1折、夜间0.2折潮汐算力,含Harness全套工具;个人/企业双版本,大幅降低多模型调用成本与使用门槛。
|
容器 Docker Linux
如何将当前用户添加到Docker组?
【7月更文挑战第25天】
5512 2
如何将当前用户添加到Docker组?
|
网络协议 网络虚拟化 Python
配置BGP/MPLS IP VPN示例——详解版
本文介绍了BGP/MPLS IP VPN的配置示例,分部1与分部2只能和总部通信,不能互相通信。通过MPLS VPN实现分部与总部间的通信,使用BGP协议传递路由。配置包括接口IP地址设置、OSPF域内互通、PE上的VPN实例配置、MP-IBGP配置、PE与CE间EBGP对等体关系建立、MPLS及MPLS LDP功能配置,并验证了配置结果。最终测试显示,同一VPN下的CE设备可相互Ping通,不同VPN下的CE设备则不能。
配置BGP/MPLS IP VPN示例——详解版
|
缓存 Ubuntu Linux
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
7888 16
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
26616 1
|
监控 Devops Linux
推荐类似宝塔的开源面板工具
本文介绍了几款类似于宝塔面板的开源服务器管理工具,包括Websoft9、1Panel、Webmin和Cockpit。这些工具在易用性、功能性和安全性方面各有千秋,能够满足不同用户的需求,从一键部署应用到高级服务器管理,提供了丰富的选择。
3121 1
推荐类似宝塔的开源面板工具
|
Linux Windows
Nomachine 最简安装与使用指南
这是一篇2022年Nomachine软件的极简安装与使用指南,包括Windows和Linux系统下的安装步骤,以及如何在Windows系统上通过Nomachine远程控制Linux系统的方法。
Nomachine 最简安装与使用指南

热门文章

最新文章