Use Docker
This page describes how to run Stardog via Docker.
To run Stardog via Docker please use the following steps:
-
Install Docker
-
Confirm that the docker daemon is running in the background.
docker version
If you do not see the server listed, start the Docker daemon.
-
The latest release of Stardog is available on Docker Hub. You can pull the image from Docker Hub with:
docker pull stardog/stardog:latest
- The
STARDOG_HOME
directory is located in/var/opt/stardog/
in the Docker image. This is the directory where all the Stardog databases and other files will be stored.
- The
-
Start the Stardog server
Some Docker volume drivers do not respect Stardog’s lock file which may cause data loss if two Stardogs use the same
$STARDOG_HOME
. Please see the Administering Stardog 101 section for more details.Because
stardog-admin server start
(the command to start up the Stardog server) is the entry point for the Docker image, you must instruct Docker to mount a home directory with a valid license from your host machine at/var/opt/stardog
in the image. For example:docker run -it -v ~/stardog-home/:/var/opt/stardog -p 5820:5820 stardog/stardog
- In this example,
~/stardog-home/
is a Stardog home directory on the host machine that only contains a Stardog license file./var/opt/stardog
is the location of Stardog home in the Docker image. If you do not have a license file, you can obtain one on the Stardog website.- The commands on this page assume the host machine has a UNIX based operating system. If you are running Docker on Windows be sure to specify a Windows-style path to the directory you want to mount to the container.
If you use selinux, you may need some additional configuration when mounting a directory to the container. See the Docker docs for more information.
-
The contents of the distribution (binaries, docs, helm charts) are located in
/opt/stardog/
. -
Note, the
-p
option to map port5820
on the container (the default Stardog port) to port5820
on localhost for easy communication with the server. - If you need to load in external jars (e.g., for virtual graph JDBC drivers or custom function), you will need to both specify an environment variable for STARDOG_EXT as well as mount an additional volume containing the jars:
docker run ... -e STARDOG_EXT=/var/opt/stardog-ext -v ~/stardog-ext:/var/opt/stardog-ext ...
If the server starts up successfully, you should see something like the following in your terminal:
************************************************************ This copy of Stardog is licensed to Somebody Awesome (somebody.awesome@stardog.com), Stardog This is a Enterprise license This license will expire in 355 days on Tue Oct 26 22:09:08 UTC 2021 ************************************************************ :; ;; `;`: `'+', :: `++ `;:` +###++, ,#+ `++ . ##+.,', '#+ ++ + ,## ####++ ####+: ##,++` .###+++ .####+ ####++++# `##+ ####+' ##+#++ ###++``###'+++ `###'+++ ###`,++,: ####+ ##+ ++. ##: ### `++ ### `++` ##` ++: ###++, ##+ ++, ##` ##; `++ ##: ++; ##, ++: ;+++ ##+ ####++, ##` ##: `++ ##: ++' ;##'#++ ;++ ##+ ### ++, ##` ##' `++ ##; ++: ####+ ,. +++ ##+ ##: ++, ##` ### `++ ### .++ '#; ,####++' +##++ ###+#+++` ##` :####+++ `####++' ;####++` `####+; ##++ ###+,++` ##` ;###:++ `###+; `###++++ ## `++ .## ;++ #####++` `;;;. ************************************************************ Stardog server 7.3.0 started on Thu Nov 05 21:42:54 UTC 2020. Stardog server is listening on all network interfaces. HTTP server available at http://localhost:5820. STARDOG_HOME=/var/opt/stardog/
- In this example,
Configuring Memory Settings
If needed, you can change the default JVM memory settings for Stardog by setting the STARDOG_SERVER_JAVA_ARGS
environment variable like so:
docker run -v ~/stardog-home/:/var/opt/stardog -p 5820:5820 \
-e STARDOG_SERVER_JAVA_ARGS="-Xmx8g -Xms8g -XX:MaxDirectMemorySize=12g" stardog/stardog
Configuring memory settings is discussed in greater detail in the Memory Usage section. It’s noted here for your reference if you are running Stardog via Docker.
Providing Options to the Server at Startup Time
As mentioned earlier, the server start
command gets invoked when executing docker run
. Often times, you may need to provide additional options to the server at startup time like enabling Stardog to accept SSL connections.
These additional options can be appended to the end of the docker run
command like so:
docker run -it -v ~/stardog-home/:/var/opt/stardog -p 5820:5820 stardog/stardog --enable-ssl
What’s Next?
Get Started with Stardog Cloud, our complete Enterprise Knowledge Graph Platform, and connect to your running Stardog server. If you want to encrypt network traffic when using Stardog, see this guide for setting up SSL.
Check out our additional Getting Started Resources for some introductory blog posts, tutorials, video trainings and more.