2015-04-17 65 views
1

我在使用Python中的docker-py访问来自客户端的docker守护进程时遇到问题。我通过 sudo docker -d &命令启动了docker守护进程,输出为[1] 4894。然后我试图使用我从here了作为根Python docker-py拒绝连接

from docker import Client 
cli = Client(base_url='unix://var/run/docker.sock') 
cli.containers() 

代码从蟒蛇访问守护这给我的错误:

requests.exceptions.ConnectionError: ('Connection aborted.', error(111, 'Connection refused')) 

我也试过

cli = Client(base_url='tcp://127.0.0.1:4894') 

但它给了我同样的错误。

+0

当你运行'sudo docker -d'没有&你看到了什么? –

+0

@PadraicCunningham我看到了'2015/04/17 17:36:33 docker daemon:1.2.0 fa7b24f; execdriver:native; graphdriver: [e7234094] + job serveapi(unix:///var/run/docker.sock) [info]在unix上监听HTTP(/var/run/docker.sock) 2015/04/17 17: 36:33找到pid文件,确保docker没有运行或者在运行'sudo docker -d'时删除/ var/run/docker.pid' – Wahbivic

回答

4

这似乎是/var/run/docker.sock文件具有不正确的权限。由于docker守护程序以root用户身份启动,因此权限可能会受到限制。

如果更改权限以允许其他用户访问它,则应该获得更多成功(例如o = rwx)。

+0

另外如果你确实想使用TCP套接字,你可能需要检查当您以root用户身份启动进程时,套接字将被启用。 – extols

+0

谢谢。我试过这个,但它也给了我同样的错误。 – Wahbivic

+0

你可以检查/var/run/docker.sock的权限吗? – extols