permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
001、问题
[liujiaxin01@PC1 ~]$ docker search omicsclass 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/images/search?term=omicsclass": dial unix /var/run/docker.sock: connect: permission denied [liujiaxin01@PC1 ~]$ groups liujiaxin01 ## 查看该用户所属的用户组 liujiaxin01 : liujiaxin01
02、原因
原因是:在默认情况下,docker 的 Unix Socket属于root用户,docker 进程就一直是root用户运行的。为了在使用 docker 命令的时候前边不再加sudo,我们需要创建一个叫 docker 的用户组,并且为用户组添加用户。然后在 docker 进程启动的时候,我们的 docker 群组有了 Unix Socket 的所有权,可以对 Socket 文件进行读写。总结一点,其实原因可能是没有创建用户组,或者将用户添加进用户组中,如果不想每次使用sudo的话,可以创建用户组或者将用户添加进用户组中就行。
03、查看当前用户组
[liujiaxin01@PC1 ~]$ cat /etc/group | tail gnome-initial-setup:x:983: sshd:x:74: slocate:x:21: avahi:x:70: postdrop:x:90: postfix:x:89: ntp:x:38: tcpdump:x:72: liujiaxin01:x:1000:liujiaxin01 docker:x:982: ## docker用户组已经存在
04、(解决方法)使用root将普通用户的附加组添加至docker组
[root@PC1 test01]# whoami ## 当前用户 root [root@PC1 test01]# groups liujiaxin01 ## 查看普通用户的用户组 liujiaxin01 : liujiaxin01 [root@PC1 test01]# getent group docker ## 查看用户组docker的用户列表 docker:x:982: [root@PC1 test01]# usermod -G docker liujiaxin01 ## 将普通用户添加至docker组 [root@PC1 test01]# groups liujiaxin01 ## 查看普通用户所属的用户组 liujiaxin01 : liujiaxin01 docker [root@PC1 test01]# getent group docker ## 查看docker组的用户列表 docker:x:982:liujiaxin01
05、普通用户使用docker测试
[liujiaxin01@PC1 ~]$ docker search omicsclass | head -n 4
没问题。
参考:https://blog.csdn.net/weixin_46895187/article/details/125769949
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-06-22 R语言中实现在命令行中传参
2022-06-22 R语言中read.table中colClasses = "character"选项作用
2021-06-22 c语言中以10进制、8进制、16进制显示同一个数字