Running ArangoDB Made Simple: Step-by-Step Guide
docker run -p 8529:8529 arangodb/arangodb
I’ve created an automated build repository on docker, so that you can easily start a docker container with the latest stable release. If you miss anything in the container, please let me know. Thanks to frodenas, hipertracker, joaodubas, webwurst who also created dockerfiles.
ArangoDB
A distributed open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient sql-like query language or JavaScript extensions.
Start a ArangoDB instance
In order to start an ArangoDB instance run
unix> docker run --name arangodb-instance -d arangodb/arangodb
By default ArangoDB listen on port 8529 for request and the image includes EXPOST 8529
. If you link an application container, it is automatically available in the linked container. See the following examples.
Using the instance
In order to use the running instance from an application, link the container
unix> docker run --name my-app --link arangodb-instance
Running the image
In order to start an ArangoDB instance run
unix> docker run -p 8529:8529 -d arangodb/arangodb
ArangoDB listen on port 8529 for request and the image includes EXPOST 8529
. The -p 8529:8529
exposes this port on the host.
Command line options
In order to get a list of supported options, run
unix> docker run -e help=1 arangodb/arangodb
Persistent Data
ArangoDB use the volume /data as database directory to store the collection data and the volume /apps as apps directory to store any extensions. These directory are marked as docker volumes.
See docker run -e help=1 arangodb
for all volumes.
A good explanation about persistence and docker container can be found here: Docker In-depth: Volumes, Why Docker Data Containers are Good Using host directories
Using host directories
You can map the container’s volumes to a directory on the host, so that the data is kept between runs of the container. This path /tmp/arangodb is in general not the correct place to store you persistent files – it is just an example!
unix> mkdir /tmp/arangodb
unix> docker run -p 8529:8529 -d \
-v /tmp/arangodb:/data \
arangodb
This will use the /tmp/arangodb directory of the host as database directory for ArangoDB inside the container. Using a data container
Using a data container
Alternatively you can create a container holding the data.
unix> docker run -d --name arangodb-persist -v /data ubuntu:14.04 true
And use this data container in your ArangoDB container.
unix> docker run --volumes-from arangodb-persist -p 8529:8529 arangodb
If want to save a few bytes for you can alternatively use tianon/true or progrium/busybox for creating the volume only containers. For example
unix> docker run -d --name arangodb-persist -v /data tianon/true true
Images
Building an image
Simple clone the repository and execute the following command in the arangodb-docker folder
unix> docker build -t arangodb .
This will create a image named arangodb.
7 Comments
Leave a Comment
Get the latest tutorials, blog posts and news:
Nice to see Docker Integration/Support, especially with examples for basic usage. Thanks!
Let me know, if you encounter any problems.
Would you kindly do a write up explaining how to use your docker container to setup a working cluster of ArangoDB ?
We are currently working on a “cluster” container.
Hey @fceller:disqus, any updates on the cluster container?
For data containers, I always like to use the Busybox image, as it is much more lightweight than Trusty.
I’ve added a comment about “busybox” or “true” in the README.