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
。