0

我已经在 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 正在运行 ( sudo service docker start)。重新启动 CentOS 没有帮助。

4

1 回答 1

3

错误是:

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

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

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

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

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

于 2015-09-10T13:06:23.943 回答