docker运行报错

问题描述

在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

你可能感兴趣的:(软件指南)