无法连接到#docker'从源头建立kubernetes的守护进程

时间:2015-03-18 14:44:48

标签: ubuntu docker ubuntu-14.04 kubernetes

我试图从源代码构建kubernetes: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/getting-started-guides/binary_release.md#building-from-source

我在我的ubuntu上安装了docker。

royalharsh95@ubuntu:~$ sudo docker version

Client version: 1.0.1

Client API version: 1.12

Go version (client): go1.2.1

Git commit (client): 990021a

Server version: 1.0.1

Server API version: 1.12

Go version (server): go1.2.1

Git commit (server): 990021a

我在sudo service docker start之后尝试过,但遇到了同样的错误。

royalharsh95@ubuntu:~$ cd kubernetes

royalharsh95@ubuntu:~/kubernetes$ make release

build/release.sh

+++ Verifying Prerequisites....

Can't connect to 'docker' daemon.  please fix and retry.

Possible causes:

- On Mac OS X, boot2docker VM isn't installed or started

- On Mac OS X, docker env variable isn't set appropriately. Run:
      $(boot2docker shellinit)

 - On Linux, user isn't in 'docker' group.  Add and relogin.
    - Something like 'sudo usermod -a -G docker royalharsh95'
    - RHEL7 bug and workaround: https://bugzilla.redhat.com/show_bug.cgi?id=1119282#c8
  - On Linux, Docker daemon hasn't been started or has crashed

make: *** [release] Error 1

1 个答案:

答案 0 :(得分:4)

您遇到的问题是由于您无法以非root用户身份访问Docker套接字/var/run/docker.sock。当您运行sudo docker version时,您正在以root身份运行Docker客户端 ,因此它不会遇到此问题。

这是一个基本的Unix权限问题,并且有标准解决方案:

  • 您可以使用root {/ 1}运行Kubernetes版本为sudo make release
  • 您可以修复套接字上的权限,以便您可以在不使用sudo的情况下使用Docker。

如果查看Docker套接字的权限,您可能会看到类似的内容:

$ ls -l /var/run/docker.sock /var/run/docker.sock
srw-rw----. 1 root docker 0 Mar 17 12:26 /var/run/docker.sock

这显示了rootdocker组成员可读的套接字。在这种情况下,我是docker组的成员,因此我可以在没有docker的情况下运行sudo客户端。您可以在您的环境中设置相同的内容。

请注意,您当然需要以root用户身份启动Docker守护程序,但一般情况下,您希望将此配置为在系统引导时自动启动,而不是手动启动。