docker image ls 提示 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

现象描述

上次在统信Linux上费了很大力气才装上docker,当时记得是可以用了。但今天登录系统后执行 docker image ls却提示上面的问题,但切换到root账户再执行这个命令就不报错了。

root可以正常使用,普通用户不行,大概率是权限的问题,可以给这个用户加docker用户组权限。

尝试1

使用下面的命令,给用户增加权限

usermod -aG docker wang

不过执行之后,再次尝试还是提示同样的错误。不太确定是否需要更新权限(或重启)导致的。

尝试2

找到了一个另外的办法。

用了另外一个命令增加权限,同时更新了一下权限,随后执行不再报错,问题解决。

wang@wang-PC:~$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 8月  23 08:38 /var/run/docker.sock

wang@wang-PC:~$ su
请输入密码
Password:
验证成功

root@wang-PC:/home/wang# gpasswd -a wang docker
正在将用户"wang"加入到"docker"组中
root@wang-PC:/home/wang# newgrp docker
root@wang-PC:/home/wang# exit
exit

root@wang-PC:/home/wang# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
postgres            12.6                9691f14013a7        15 months ago       300MB

gpasswd和usermod的区别

usermod是修改用户的属性,gpasswd的话主要是对用户组的操作。

但就上面两个命令来讲,没什么区别,都是把wang加入到docker组中。因此,第一个没生效应该是没有更新的原因(随后尝试删除了wang的docker组,重启,再执行报错;usermod添加权限,重启,执行成功,因此验证了尝试1中的猜测)。

可以参考使用说明

[wang@DESKTOP-K8UBC7R system32]$ usermod
Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                the user from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

[wang@DESKTOP-K8UBC7R system32]$ gpasswd
Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...

                                set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.

也可以看到,两个命令的侧重点是不一样的。

但gpasswd -a wang docker 和 usermod -aG docker wang的功能是一样的。

Linux 用户组的概念

在一些文章里看到了用户组又分为主组和附加组的概念,一时间有点晕乎。查了一下资料,发现两者其实对于使用来讲,区别不大。

对于一个用户来讲,有且只能有一个主组、主组可以更换;可以属于多个附加组。

详细如下:

主组也叫初始组,是用户登录系统时的组,规则如下:

  • 创建新用户时,若未明确指定该用户所属的主组,会默认创建一个与用户名相同的组,作为该用户的主组
  • 用户创建文件时,文件的所属权限组就是当前用户的主组
  • 使用 useradd命令时用 g参数可以指定主组,则不会默认创建同名的主组
  • 用户有且只能所属一个主组
  • 用户的主组不能被删除
  • 用户不能直接被移出主组,但可以更换主组
  • 用户被删除时它的主组若没有其他所属用户,则会自动删除该主组

附加组:

登录后可切换的其他组,规则如下:

  • 使用 useradd命令时用 G参数可以指定附加组
  • 用户可以所属零个或多个附加组
  • 用户的附加组和主组可相同
  • 附加组可以直接被删除而无需关心是否所属于用户
  • 附加组可以新增和移除任意个所属用户
  • 用户被删除时所属附属组不会受影响

建议:使用 gpasswd命令而不是 usermod,因为 usermod -G命令如果不写全用户的附属组,会清空之前的所有附属组

Original: https://www.cnblogs.com/wswang/p/16669371.html
Author: wswang
Title: docker image ls 提示 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585787/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SQL51 查找字符串中逗号出现的次数

    本题链接本题表结构如下所示。 +—-+————–+ | id | string | +—-+————–+ | 1 | 10,A,B | …

    Linux 2023年6月13日
    088
  • 统计算法_数值/线性关系度量

    继续统计算法,这次也没什么特别的,还没到那么深入,也是比较基础的1、方差-样本2、协方差(标准差)-样本3、变异系数4、相关系数 依然是先造个list,这次把这个功能写个函数,方便…

    Linux 2023年6月6日
    0144
  • 同一台电脑生成多份ssh私钥和公钥,映射多个GitHub账号

    当我们使用 Git 进行代码版本控制时,经常出现一台电脑需要连接多个Git 账号的情况,此时需要在一台电脑上生成多份 ssh 私钥和密钥,同时映射多个 Git 账号;这里我们需要同…

    Linux 2023年6月14日
    075
  • AOP实现系统告警

    工作群里的消息怕过于安静,又怕过于频繁 一、业务背景 在开发的过程中会遇到各种各样的开发问题,服务器宕机、网络抖动、代码本身的bug等等。针对代码的bug,我们可以提前预支,通过发…

    Linux 2023年6月13日
    087
  • OrchardCore Headless建站拾遗

    书接上回,OrchardCore的基本设置写了,但是有一说一,这个东西还是挺复杂的,如果需要构建一个简单的企业网站,还需要干点别的活。 本文考虑在尽量少编程的基础上,完成一个Hea…

    Linux 2023年6月6日
    092
  • js学习笔记——条件 循环

    今天发现之前学的爱前端的课中JS部分函数等不全,果断换了一个课——渡一的《Web前端开发JavaScript高薪课堂》接着学习,不过废话有点多 语法:1、单if,条件成立,执行语句…

    Linux 2023年6月13日
    065
  • 巧用 JuiceFS Sync 命令跨云迁移和同步数据

    近年来,云计算已成为主流,企业从自身利益出发,或是不愿意被单一云服务商锁定,或是业务和数据冗余,或是出于成本优化考虑,会尝试将部分或者全部业务从线下机房迁移到云或者从一个云平台迁移…

    Linux 2023年6月14日
    0102
  • 【VirtualBox】VirtualBox磁盘扩容

    我的VirtualBox里面运行着Ubuntu镜像,最初创建时设置的时20G,开发过程中就不够用了 查询磁盘使用情况 df-h 查询磁盘的使用空间确实已经到了极限 扩容步骤: 1….

    Linux 2023年6月13日
    088
  • JavaScript 的闭包(closure)

    关于JavaScript 的闭包(closure)的笔记 以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」 https://www.cnblogs.c…

    Linux 2023年6月6日
    0116
  • node.js和vue cli脚手架下载安装配置方法

    一、node.js安装以及环境配置 1、下载vue.js 下载地址: https://nodejs.org/en/ 2、安装node.js 下载完成后,双击安装包开始安装。安装地址…

    Linux 2023年6月7日
    0101
  • 11-K8S部署普罗米修斯

    K8S-Kubernetes 集群部署 Prometheus 和 Grafana 1.实验环境 控制节点/master01 192.168.80.20 工作节点/node01 19…

    Linux 2023年6月13日
    080
  • 01-MySQL连接查询、聚合函数

    1、连接查询 1.1、左连接 以左表为基准进行查询,左表数据回全部显示出来 右表中如果匹配连接条件的数据则显示相应字段的数据,如果不匹配,则显示为NULL 1.2、右连接 以右表为…

    Linux 2023年6月7日
    0119
  • 面试复盘(1)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    094
  • 【转载】人才成长攻略

    本文转载自知乎《前些天在知乎回复了一个帖子:怎么劝大四室友不要考计算机研?- 曹政的回答》,原作者曹政 评论里有一堆阴阳怪气的说法,什么没天赋怎么办,程序员也不是终身可靠的职业云云…

    Linux 2023年6月13日
    081
  • SSH免密登录的配置

    ssh登录 登录ssh一般情况有两种方法 密码登录 秘钥登录(免密) 大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题。最近我编写了一些使用scp来传输文件的脚本,…

    Linux 2023年6月6日
    051
  • Unit 1 Computer hardware【石家庄铁道大学-专业英语课 】

    Unit 1 Computer hardware 1、Introduction of computer A computer is a machine that can be in…

    Linux 2023年6月14日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球