Developer Guides Getting Started Getting Started What is a Graph Database? Intro to Graph DBs Video Series Concepts: RDBMS to Graph Concepts: NoSQL to Graph Getting Started Resources Neo4j Graph Platform Graph Platform Overview Neo4j Desktop Intro Neo4j Browser Intro… Read more →
Neo4j with Docker
Docker is a lightweight virtualization mechanism to run single applications or processes in a containerized environment on a Linux host system. It is designed to handle a small piece of functionality in each container and scale according to needs. Docker containers can be used as infrastructure layers, data containers, or configuration providers.
The containers are built from images that can be vendor-provided or user-defined.
To build a Docker image, you create a specification file (
Dockerfile) to define the minimum-required, dependent layers for the application or service to run.
The steps in the Dockerfile describe the operations for adding the necessary filesystem content for each layer.
Because it is lightweight and small, a Docker image can be quickly downloaded and used to create and start containers in a matter of seconds. You can run as many Docker instances on your host as your resources allow because each container is isolated from any others.
There are several ways to leverage Docker for your Neo4j deployment. You can create throw-away Neo4j instances of many different versions for testing and running your applications. You can also pre-seed containers with datasets, extensions, and configurations for interaction and processing.
Neo4j provides and maintains official https://hub.docker.com//neo4j/[Neo4j Docker images^] on DockerHub for both Neo4j Community and Enterprise editions. Releases for current and previous versions of the image are also provided. A list of the previous versions is available under the https://hub.docker.com//neo4j/?tab=tags[tags section^] of the DockerHub page.
Running Neo4j on Docker is simple and easy to do. The step-by-step instructions on starting Docker containers for Neo4j are given in our how-to guide. There is also excellent documentation in our operations manual on running Neo4j with Docker and how to configure it, run clusters, and handle security.
We also use Neo4j on Docker internally for some of our tools and functionality. From building solutions to live demos, deploying Neo4j with Docker is a valuable capability. Probably our best-known examples of Neo4j deployed with Docker containers are the Neo4j Sandboxes. These sandboxes are Neo4j instances in Docker containers running on a shared cloud server. Each sandbox is independent and separated from the others, allowing users to spin up contained environments for trying out and testing Neo4j!
In each sandbox use case, we specify certain configurations, data sets, and extensions/plugins to include, and each user’s queries and exploration is specific to that assigned container. Once the life of a Neo4j Sandbox is complete (maximum of 10 days), the container is shut down and any saved changes or data corruption is destroyed. If you want to see how Neo4j works in a Docker container, go ahead and create a Neo4j Sandbox. Note that we do have some configuration presets to restrict certain access and limit functionality.