neo4jEstimated reading time: 4 minutes
Neo4j is a highly scalable, robust native graph database.
GitHub repo: https://github.com/neo4j/docker-neo4j
Supported tags and respective
Where to get help:
Where to file issues:
What is neo4j?
Neo4j is the world’s leading graph database, with native graph storage and processing. You can learn more here.
How to use this image
You can start a Neo4j container like this:
docker run \ --publish=7474:7474 --publish=7687:7687 \ --volume=$HOME/neo4j/data:/data \ neo4j
which allows you to access neo4j through your browser at http://localhost:7474.
This binds two ports (
7687) for HTTP and Bolt access to the Neo4j API. A volume is bound to
/data to allow the database to be persisted outside the container.
By default, this requires you to login with
neo4j/neo4j and change the password. You can, for development purposes, disable authentication by passing
--env=NEO4J_AUTH=none to docker run.
For more examples and complete documentation please go to our manual here.
Releases after 3.4.14 and 3.5.6
As of 11th June 2019 all new Neo4j Docker images will be released with a base image of debian-slim instead of alpine linux. This was prompted by security concerns, which caused the docker maintainers to pull the alpine images from the official
Older Neo4j images have already been released with
openjdk:8-jre-alpine as the base image. This means our old images can no longer be listed as “supported” on docker hub, although they are still available for download.
In addition to the supported tags, we also have these legacy images of Neo4j available through docker hub:
3.5.5-enterpriseand earlier patches
3.4.13-enterpriseand earlier patches
3.3.9-enterpriseand earlier patches
3.2.14-enterpriseand earlier patches
A complete list of all available Neo4j images can be found here: https://github.com/neo4j/docker-neo4j-publish/tree/master
Migrating from Alpine Linux to Debian Slim
If you have created a custom Dockerfile based off a
neo4j image, the main change to be aware of is that debian uses the
aptitude package manager instead of
apk. In most cases you can just replace uses of
apt, but be aware that not all packages in
apk may be available or have the same name.
Alpine Linux provide a more complete comparison on their documentation page:
Changes to file permission requirements
Some users have raised concerns that the Neo4j image changes file permissions on the host machine.
By default, Neo4j runs as the user
neo4j who only exists in the container, not on the host. That means that it’s hard to set up mount folders on the host which this new user has write permissions for. We have updated the error messaging with advice about how to fix file permission errors. We also introduced writability checks and reduced the amount of file permission changes the image will perform. This has been found to interfere with some Kubernetes setups, so is currently an opt-in feature.
To enforce stricter file permissions checking you can pass this environment variable to the container:
View licensing information for the software contained in this image.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
Some additional license information which was able to be auto-detected might be found in the
As for any pre-built image usage, it is the image user’s responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.library, sample, neo4j