CentOS7:您是否尝试在没有 TLS 的情况下连接到支持 TLS 的守护进程?

CentOS7: Are you trying to connect to a TLS-enabled daemon without 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 等中使用图像)但是使用它感觉不对,我我对吗?让我们作为普通用户工作的解决方案是什么?

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

错误是:

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

这似乎很清楚:/var/run/docker.sock 上 Docker 套接字的权限不允许您访问它。这相当普遍,因为将 Docker API 的访问权限授予某人实际上与授予他们 sudo 特权相同,但没有任何类型的审核。

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

  • 创建一个 docker 群组或类似群组(如果尚不存在)。
  • 让自己成为 docker 组的成员
  • 修改 docker 守护程序的启动配置,通过在选项中添加 -G docker 使套接字归该组所有。您可能需要编辑 /etc/sysconfig/docker 来进行此更改,除非它已经以这种方式配置。

完成这些更改后,您应该能够从您的用户帐户访问 docker,但需要 sudo