Debian10重启后Docker异常

问题描述:

最近新装了Debian10(buster) 重启后docker抛出异常
但root用户使用正常

异常信息如下

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.


冷静分析 (并不

查询资料后得知是由于docker用户组由于某种原因在系统重启后从系统用户组中移除了 所以我们登录的当前用户不能通过docker用户组访问docker服务
而docker的守护程序dockerd是由root用户启动 所以root用户可以直接访问docker服务

可以使用如下命令查看docker守护程序dockerd运行者

1
$ ps -aux | grep dockerd

问题解决

问题原因找到了 那我们就可以从用户组方面着手解决
执行如下命令

1
$ sudo usermod -aG docker $USER

第一次运行该命令会提示输入root密码
命令完成后不会立即生效
理论上桌面环境注销当前用户重新登录就可以 但实测Debian10需要重启计算机后才会起效

重启后执行如下命令查验解决方案是否生效

1
$ groups

若在列表中发现docker组 说明已经生效
这之后使用非root用户执行docker就可以正常运行了


参考资料: TechOverflow 2018-12-15

END