我试图从源代码构建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
答案 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
这显示了root
和docker
组成员可读的套接字。在这种情况下,我是docker
组的成员,因此我可以在没有docker
的情况下运行sudo
客户端。您可以在您的环境中设置相同的内容。
请注意,您当然需要以root用户身份启动Docker守护程序,但一般情况下,您希望将此配置为在系统引导时自动启动,而不是手动启动。