CentOS7:你是否试图连接到启用TLS的守护进程而不使用TLS?

我已经在CentOS7上安装了Docker,现在我尝试在Docker容器中启动服务器。

$ docker run -d --name "openshift-origin" --net=host --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp/openshift:/tmp/openshift \ openshift/origin start 

这是输出:

 Post http:///var/run/docker.sock/v1.19/containers/create?name=openshift-origin: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS? 

我已经尝试了与sudo相同的命令,并且工作正常(我也可以在OpenShift bash等运行图像),但它感觉不对,使用它,对不对? 什么是让普通用户工作的解决scheme?

Docker正在运行( sudo service docker start )。 重新启动CentOS没有帮助。

错误是:

 /var/run/docker.sock: permission denied. 

这似乎很清楚:在/var/run/docker.sock的Docker套接字上的权限不允许您访问它。 这是相当普遍的,因为交给Docker API的人实际上和给他们sudo权限一样,但没有任何审计。

如果您是唯一使用您的系统的人,您可以:

  • 创build一个docker组或类似的,如果还不存在。
  • 让自己成为docker组的成员
  • 修改docker守护进程的启动configuration,通过将-G docker添加到选项来使该组拥有套接字。 你可能想编辑/etc/sysconfig/docker来做这个改变,除非它已经被configuration了。

随着这些变化,你应该能够从你的用户帐户访问docker,需要sudo

Interesting Posts