ArangoDB 3.12 Product Release Announcement! Read the blog for details. Read Blog

Vector-5

Running ArangoDB is as simple as …

Estimated reading time: 2 minutes

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.

Picture of Frank Celler
November 25, 2014 ,

Frank is both entrepreneur and backend developer, developing mostly memory databases for two decades. He is the CTO and co-founder of ArangoDB. Try to challenge Frank asking him questions on C, C++ and MRuby. Besides Frank organizes Cologne’s NoSQL group & is an active member of NoSQL community.

Leave a Comment