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
。
我已经在 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
。