Jupyter ノートブック Docker インスタンス ( https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook ) を実行しており、py2neo をインストールしました。
ポート7474を公開してNeo4Jをインストールしたdockerコンテナも実行しています。
問題は、ノートブック ドッカーから Neo4J ドッカーの REST インターフェイスに接続できないように見えることです。問題はlocalhostの定義に関連していると思います。
これまでに機能したもの。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')
localhost の定義が異なるため、別の docker コンテナーで実行されているノートブックでは同じコードは機能しません。しかし今、私はそれがどうあるべきか理解していません:
Neo4J コンテナーで docker inspectを使用し、ローカルホストに対応するアドレスを見つけるために次の 2 つを使用しました。
- "ゲートウェイ": "xxx.yy.42.1"
- "IPアドレス": "xxx.yy.0.3"
しかし、どちらも結果としてClientError: 401 Unauthorized
この問題を克服する方法について何か提案はありますか? (私の現在の docker バージョンは 1.7.1 であるため、ネットワークはまだサポートされていませんが、必要に応じて明らかにアップグレードできます。)