使用 python 笔记本将 docker 个实例连接到使用 Neo4J 的 docker 个实例
Connecting docker instance with python notebook to docker instance with Neo4J
我是 运行 Jupyter notebook docker 实例 (https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook),我已经在上面安装了 py2neo。
我也是 运行 一个 docker 容器,其中安装了 Neo4J,并暴露了端口 7474。
问题是我似乎无法从笔记本 docker 连接到 Neo4J docker 的 REST 接口。我认为问题与本地主机的定义有关。
到目前为止什么有效。我只使用了 Neo4J docker 并启动了一个本地笔记本(ipython 笔记本)然后以下工作:
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')
相同的代码在单独的 docker 容器中 运行 的笔记本中不起作用,因为 localhost 的定义不同。但是现在我不明白它应该是什么:
我在 Neo4J 容器上使用了 docker inspect 并使用以下两个试图找到与我的本地主机对应的地址:
- "Gateway": "xxx.yy.42.1"
- "IPAddress": "xxx.yy.0.3"
但是它们都导致 ClientError: 401 Unauthorized
关于如何克服这个问题有什么建议吗?
(请注意,我当前的 docker 版本是 1.7.1,因此尚不支持网络,但如果有必要,我显然可以升级。)
graph = Graph('https://' + username + ':' + pwd + '@' + ip_neo + ':7473 /db/data')
这似乎有效。请注意,您需要端口 7473,这是标准的 HTTPS 端口。使用身份验证的方法没有成功。
对于 ip_neo 我检查了 neo4J docker 实例:
sudo docker inspect neo4j | grep "Gateway"
我是 运行 Jupyter notebook docker 实例 (https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook),我已经在上面安装了 py2neo。
我也是 运行 一个 docker 容器,其中安装了 Neo4J,并暴露了端口 7474。
问题是我似乎无法从笔记本 docker 连接到 Neo4J docker 的 REST 接口。我认为问题与本地主机的定义有关。
到目前为止什么有效。我只使用了 Neo4J docker 并启动了一个本地笔记本(ipython 笔记本)然后以下工作:
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')
相同的代码在单独的 docker 容器中 运行 的笔记本中不起作用,因为 localhost 的定义不同。但是现在我不明白它应该是什么:
我在 Neo4J 容器上使用了 docker inspect 并使用以下两个试图找到与我的本地主机对应的地址:
- "Gateway": "xxx.yy.42.1"
- "IPAddress": "xxx.yy.0.3"
但是它们都导致 ClientError: 401 Unauthorized
关于如何克服这个问题有什么建议吗? (请注意,我当前的 docker 版本是 1.7.1,因此尚不支持网络,但如果有必要,我显然可以升级。)
graph = Graph('https://' + username + ':' + pwd + '@' + ip_neo + ':7473 /db/data')
这似乎有效。请注意,您需要端口 7473,这是标准的 HTTPS 端口。使用身份验证的方法没有成功。
对于 ip_neo 我检查了 neo4J docker 实例:
sudo docker inspect neo4j | grep "Gateway"