将docker实例与python笔记本连接到Neo4J的Docker实例

我正在运行一个Jupyter笔记本泊坞窗实例( https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook ),我已经安装了py2neo。

我也运行与端口7474暴露安装Neo4Jdocker集装箱。

问题是我似乎无法连接到笔记本泊坞窗的Neo4J泊坞窗的REST接口。 我认为这个问题与localhost的定义有关。

到目前为止工作。 我只用了Neo4J docker,启动了一个本地笔记本(ipython notebook),接下来的工作就是:

import py2neo from py2neo import Node, Relationship, Graph, authenticate authenticate("http://localhost:7474", "neo4j", "admin") graph = Graph('http://localhost:7474/db/data') graph.cypher.execute('match (y:Year) return y') 

因为localhost的定义是不一样的,相同的代码在单独的docker容器中运行的笔记本中不起作用。 但现在我不明白它应该是什么:

我已经在Neo4J容器上使用docker 检查 ,并使用以下两个试图find对应于我的本地主机的地址:

  • “网关”:“xxx.yy.42.1”
  • “IPAddress”:“xxx.yy.0.3”

但是它们都导致ClientError: 401 Unauthorized

有关如何解决这个问题的任何build议? (请注意,我目前的docker版本是1.7.1,因此不支持networking,但是如果有必要,我可以明显升级。)

 graph = Graph('https://' + username + ':' + pwd + '@' + ip_neo + ':7473 /db/data') 

这似乎工作。 请注意,您需要端口7473这是标准的HTTPS端口。 没有成功获得authentication的方法工作。

对于ip_neo我检查neo4Jdocker实例:

 sudo docker inspect neo4j | grep "Gateway"