无法连接到Docker守护程序.docker守护程序是否在此主机上运行?

thi*_*ing 41 ubuntu docker

我在ubuntu 14.04上安装了docker,它告诉我安装成功.然后我进去了sudo docker version,它回来了

Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Run Code Online (Sandbox Code Playgroud)

我进去了sudo service docker status,我知道了

docker start/running, process 8063
Run Code Online (Sandbox Code Playgroud)

我试过sudo docker imagessudo docker info,我得到了同样的答复:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它返回这个,我试图拉ubuntu使用sudo docker pull ubuntu,并得到

Using default tag: latest
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Run Code Online (Sandbox Code Playgroud)

请告诉我如何解决这个问题,如何拉动和运行docker图像.和是docker -d一样的docker deamon吗?

Ali*_*ani 47

您需要将当前用户添加到docker组,如下所示:

sudo usermod -aG docker <your username>
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用USER环境变量,如:

sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)

然后重启系统.正如码头文件所说:

码头工人守护程序绑定到一个Unix套接字而不是TCP端口.默认情况下,Unix套接字由用户root拥有,其他用户可以使用它sudo.因此,docker守护程序始终以root用户身份运行.

要避免sudo在使用该docker命令时使用,请创建一个名为的Unix组docker并向其添加用户.当docker守护程序启动时,它使得Unix套接字的所有权可由docker组读取/写入 .

  • 我在ubuntu 14.04 LTS上得到了相同的输出,但用我的用户名设置`sudo usermod -aG docker <你的用户名>`不起作用.重新启动我的系统后,我仍然"无法连接到Docker守护程序.docker守护程序是否在此主机上运行?`相同.任何的想法? (3认同)

Pra*_*hal 5

如果向该docker组添加用户不起作用,请尝试重新启动该服务:

sudo service docker restart 
Run Code Online (Sandbox Code Playgroud)


rid*_*orm 5

对我有用的唯一方法(在 ubuntu xenial 上):

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp docker
Run Code Online (Sandbox Code Playgroud)

这里找到