编辑
2023-10-14
后端
00
请注意,本文编写于 574 天前,最后修改于 574 天前,其中某些信息可能已经过时。

今天重装服务器系统重装docker,遇到以下问题,之前很多次都有这个问题,不过过段时间忘记解 决方法了,这里记录下

ubuntu@VM-8-16-ubuntu:~$ 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.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

表示当前用户没有权限读写/var/run/docker.sock文件,Docker守护进程利用这个文件和容器通信,没有权限给他权限就是

sudo chmod 666 /var/run/docker.sock

在 Linux 中,权限由三个数字表示,每个数字范围从 0 到 7,分别代表不同的权限级别。每个数字表示文件所有者、所属组和其他用户的权限。

数字权限表示如下:

  • 0:没有权限(没有读、写和执行权限)
  • 1:执行权限
  • 2:写权限
  • 3:写和执行权限
  • 4:读权限
  • 5:读和执行权限
  • 6:读和写权限
  • 7:读、写和执行权限
  • 在上述数字中,每个数字对应的权限是相加的。例如,权限为 666 表示:

所有者具有读和写权限(6) 所属组具有读和写权限(6) 其他用户具有读和写权限(6) 换句话说,对于文件的所有者、所属组和其他用户,都具有读和写的权限,没有执行权限。

转念一想,666这个权限是不是太那啥了,所有用户都能读写修改,当然,但是对于个人学习没问题,接下来是正确做法,我们应当赋予660权限,限制用户,只要我们把当前用户加入docker用户组就可以操作如下

ubuntu@VM-8-16-ubuntu:~$ sudo chmod 660 /var/run/docker.sock ubuntu@VM-8-16-ubuntu:~$ sudo groupadd docker ubuntu@VM-8-16-ubuntu:~$ sudo usermod -aG docker $USER ubuntu@VM-8-16-ubuntu:~$ newgrp docker

执行完后重启生效,reboot。

image.png

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!