今天重装服务器系统重装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,分别代表不同的权限级别。每个数字表示文件所有者、所属组和其他用户的权限。
数字权限表示如下:
所有者具有读和写权限(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。
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!