问题描述
在Ubuntu18.04上装好docker后运行报错,信息如下:
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
解决办法
网上有解决办法是把当前用户添加到docker用户组里,如下:
1.添加名为 docker 的用户组
$ sudo groupadd docker
2.把当前用户加到 docker 用户组里
$ sudo gpasswd -a $USER docker
3.把当前用户切换到 docker 用户组
$ newgrp docker
经过以上步骤之后,在当前终端内确实可以使用docker命令了,但在我电脑上新开一个终端或者重启机器之后必须再把当前用户切换到docker组才能继续使用docker命令,出现这种问题的原因见附。
在stackoverflow上找到解决办法:
## 修改对 docker.sock 文件的权限
$ sudo chmod 666 /var/run/docker.sock
附
查看所有用户组:
$ groups
查看当前用户所在的所有用户组:
$ groups $USER
区别 /etc/passwd 和 /etc/group 文件
/etc/passwd文件描述的是所有用户的主要信息,截取其中一条如下:
hust:x:1000:0:hust,,,:/home/hust:/bin/bash
总共7个字段:用户名:密码标志:用户id:用户的初始组id:用户的简单说明:用户的home目录:用户所使用的shell
/etc/group文件描述所有的用户组信息,截取内容如下:
root:x:0:
docker:x:127:hust
总共4个字段:组名:密码标志:组id:组内用户列表
分析之前出错原因:hust用户的初始用户组是root组,难怪每次都要切换到docker组之后才能正常使用docker
在Ubuntu 18.04上安装Docker后遇到运行权限问题,表现为尝试连接Docker守护进程时被拒绝。解决方案包括将当前用户添加到docker用户组,但此方法在新终端或重启后无效。分析原因是用户的初始组为root,需要通过修改用户组设置以持久解决该问题。
428

被折叠的 条评论
为什么被折叠?



