之前遇到的一个问题,使用非root用户时操作docker提示无权限,在查阅了一些文章之后自己又摸索出了一些更方便的方法,顺手记录下来。

一、问题发现

根据报错信息dial unix /var/run/docker.sock: connect: permission denied,可以看出,是因为当前用户对docker使用的unix domain socket文件/var/run/docker.sock无权限。

于是查看docker.sock相关信息:

ls -l /var/run/docker.sock
# srw-rw---- 1 root docker 0 /var/run/docker.sock

可以看到,权限模式为srw-rw----,所属用户为root,所属组为docker。因此有权限的用户包括root用户和docker组内的用户。

二、使用root用户进行操作

1. 使用sudo操作

sudo docker <args>

2. 切换root用户操作

sudo -i
docker <args>
exit

三、授予docker.sock操作权限

1. 单次授予,重启后失效

sudo chmod 666 /var/run/docker.sock

2. 永久授予

2.1. 将当前用户加入docker组(推荐)

sudo gpasswd -a $USER docker
# 或
sudo usermod -a -G docker $USER

2.2. 向所有用户授予权限

# 查看docker.socket配置
cat /usr/lib/systemd/system/docker.socket

可以看到以下内容

[Unit]
Description=Docker Socket for the API [Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker [Install]
WantedBy=sockets.target

其中ListenStreamunix domain socket文件路径,SocketMode为权限模式,SocketUser为所属用户,SocketGroup为所属组。

我们只需修改SocketMode0666即可。

修改并保存完成后,重新加载守护并重启socket即可:

sudo systemctl daemon-reload
sudo systemctl restart docker.socket

再次使用docker发现不再报错,重启机器后仍然可用。

关于`dial unix /var/run/docker.sock: connect: permission denied`的处理方法笔记的更多相关文章

  1. docker 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. ...

  2. 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.38/images/json: dial unix /var/run/docker.sock: conne

    使用docker报如下错误信息: Got permission denied while trying to connect to the Docker daemon socket at unix:/ ...

  3. docker 解决:Get http:///var/run/docker.sock/v1.19/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

    docker 安装之后,通过命令查看docker相关信息时,可能会出现错误:Get http:///var/run/docker.sock/v1.19/version: dial unix /var/ ...

  4. 输入docker ps 报错信息处理Get http:///var/run/docker.sock/v1.19/containers/json: dial unix /var/run/docker.sock: permission denied.

    完整错误信息 Get http:///var/run/docker.sock/v1.19/containers/json: dial unix /var/run/docker.sock: permis ...

  5. 【解决】Got permission denied while trying to connect to the Docker daemon socket at......dial unix /var/run/docker.sock: permission denied

    >>> 问题:搭建Portainer时,选择本地连接报错? >>>分析: 根据报错信息可知是权限问题. 可能原因一:使用了非root用户启用或连接docker &g ...

  6. docker Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post

    利用docker构建时,报错 + docker pull maven:3-alpine Got permission denied while trying to connect to the Doc ...

  7. 启动docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

    启动docker提示: docker: Got permission denied while trying to connect to the Docker daemon socket at uni ...

  8. 【转载】Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决办法

    Docker Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docke ...

  9. Cannot connect to the Docker daemon at unix:///var/run/docker.sock.问题解决

    出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock时,先用tail -5f /var/log/upstart/do ...

  10. Docker未启动错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    此问题是因为Docker安装后未启动所致,执行以下命令启动docker: systemctl start docker.service 具体日志如下: Connecting to ... Connec ...

随机推荐

  1. QA|20221002|SecureCRT中退格键变成了^H

    原因:backspace键和delete键的键码映射问题   解决办法一:要使用回删键(backspace)时,同时按住ctrl键   解决办法二:重新设置码值映射关系.比如SecureCRT中,会话 ...

  2. iFiles浏览iphone文件

    我们希望能在iphone中浏览文件系统的目录

  3. 【项目源码】JavaWeb网上购书系统

    JavaWeb网上购书系统 介绍 采用JSP.Servlet.MySQL.Tomcat8.0开发的网上购书系统. 软件架构 网上书城主要功能如下: (1) 前台(客户购买)部分: ① 用户管理:注册会 ...

  4. 3-MySQL基本数据类型介绍

    数据类型的介绍: 数据类型(data_type)是指系统中所允许的数据的类型.数据库中的每个列都应有适当的数据类型,用于限制或允许该列中存储的数据.例如,列中存储的为数字,则相应的数据类型应该为数值类 ...

  5. 【目标检测】Fast R-CNN算法实现

    一.前言 2014年,Ross Girshick提出RCNN,成为目标检测领域的开山之作.一年后,借鉴空间金字塔池化思想,Ross Girshick推出设计更为巧妙的Fast RCNN(https:/ ...

  6. fmt 库简介和示例【GO 基础】

    〇.关于 fmt fmt 标准库是 Go 语言标准库的一部分,提供了格式化字符串.输入输出等基本功能.通过 fmt 库,我们可以进行简单的格式化输出.读取用户输入.错误输出等操作. fmt 库实现了类 ...

  7. 【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋

    在国庆假期的一个傍晚,小悦正在家中享受火锅美食.她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑.突然,手机铃声响起,打破了这温馨的氛围.她拿起手机一看,是公司打来的电话. "小悦,有个紧急的项 ...

  8. 【Mac2021版Intel芯片下载】 - Intel芯片推荐安装

    [Mac2021版Intel芯片下载] - Intel芯片推荐安装 往下拉有安装图文教程一.下载提示1请点击图标进行下载 ●每个软件下方均标注了该软件的用途,请注意查看: ●如果点击无反应,请换一个浏 ...

  9. frida动态插桩初探

    前言 近期碰到了分析app的需求,就学习了一下 frida的动态插桩技术.frida是一款轻量级HOOK框架,可用于多平台上,例如android.windows.ios等.frida分为两部分,服务端 ...

  10. 使用 QuickTime Player 将手机投屏到旧版 Macbook pro

    由于旧版的 MacBook Pro 不支持 AirPlay,我们可以通过Mac系统自带的应用程序[QuickTime Player]来进行投屏操作. 以下是具体的步骤: 首先,使用USB数据线将你的 ...