小白docker的守护进程权限问题

即使是linux老鸟也可能只靠卸载虚拟机主机的问题,其实很简单就可以破。

问题描述如下:

看标红的ERROR

说明 Docker 守护进程未运行或者你的用户无权访问它

但其实之前我就已经运行过vulhub-master的里的其他子文件了,这次居然up不了。

而且rm -r vulhub-master以后重新unzip,再试了还是不行

于是

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

一切正常,docker状态是active。

那就确定是守护进程出了问题(因为docker本身都运行不起来的话那就谈不上docker的进程了)。虽然我不知道守护进程是个什么东东。

那既然是名曰守护,那就一定守护者某样东东。。

于是就可以推测,要么是我没有权限访问守护,要么是守护压根没有开启

然后我们直接 docker ps看守护给回显,如下

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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied

然后看到明显的 permission denied

明显是被拒绝了,permission是许可的意思,在这里是权限。权限被拒绝就是权限不够。

那么如果是守护没开,回显是cannot connect

Cannot connect to the Docker daemon at unix:///var/run/docker.sock: Dial unix:///var/run/docker.sock: connect: no such file or directory

官方区分二者的办法是

ls -l /var/run/docker.sock

正常的回显是:

说看他的套接字,也是看它的回显,但我的个人用法是,这个命令可以用来看是否已经可以访问了

其实呢,状态active就可以判断是权限不足了。这时候只要开权限就好。

办法也很简单

sudo usermod -aG docker $USER
newgrp docker 或重新登录
用官方办法验证 docker ps 能否正常执行

运行以上代码就可以了。

结论:将用户添加到 docker 组相当于授予其 root 权限,因为 Docker 可通过特权容器访问主机系统。虽然不知道这个特权容器是个什么东东。。但这个方法至少比你重装主机强。尤其是当你还对系统有其他配置时。

附议:

如果你的xshell像我这样调好了,但是主机还是denied,你就newgrp一下就行,当刷新用。亲测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值