Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
04-26-2020 11:24 AM
I am having difficulty connecting to Neo4j running in a Docker container from python in a different Docker container on Ubuntu 18.04. Here are some details:
Creating the container
$ sudo docker run
--name Neo4j.4C
-p27474:7474
-d
--env=NEO4J_AUTH=none
--memory=6G neo4j:4.0.3
TEST 1: With the proper python packages (neo4j/py2neo)- I am able to connect to Neo4j successfully from the host machine
>>> from py2neo import Graph
>>> graph = Graph('http://127.0.0.1:27474/')
>>> graph.run('MATCH (x) RETURN COUNT(x)').data() # <- THIS WORKS
TEST 2: However, I am not able to make a similar connection from python within a separate Docker container:
>>> from py2neo import Graph
>>> graph = Graph('http://172.17.0.1:27474/')
>>> graph.run('MATCH (x) RETURN COUNT(x)') # <- HANGS
Within the Neo4j container, I do not see anything under /var/lib/neo4j/logs/debug.log. the last two entries are from startup:
2020-04-26 15:19:42.179+0000 INFO [o.n.s.AbstractNeoServer$ServerComponentsLifecycleAdapter] [system] Starting web server
2020-04-26 15:19:44.809+0000 INFO [o.n.s.AbstractNeoServer$ServerComponentsLifecycleAdapter] [system] Web server started.
Two questions:
Thanks in advance for any ideas here.
04-26-2020 04:08 PM
This isn't related to Neo4j, it's just how docker networking works. To fix this, you have to create a network and assign both of your containers to it, otherwise the containers can each talk to the host, but not to each other. This explains why it works from your host machine but not from the second docker container.
Here are the docker networking docs that will step you through how to do that.
All the sessions of the conference are now available online