Skip to main content
Version: 3.1.1

Running ChronoLog with Docker (Single Node)

Welcome!​

If you're looking for the easiest way to run ChronoLog, this is it. ChronoLog's Docker image provides a ready-to-use installation, so you can skip the manual setup and jump straight into using it.

Let's get started!

Before we start: What is Docker?​

Docker is a tool that allows you to run applications inside lightweight, isolated environments called containers. This means you don't have to worry about dependencies or system configurations—everything is pre-packaged and ready to go.

For a deeper dive, check out:

Before continuing, let's verify that Docker is properly installed on your system:

docker --version

If you see a version number, you're good to go!

Setting Up ChronoLog Docker Image​

Step 1: Pull the ChronoLog Docker Image​

First, pull the pre-built ChronoLog image from GitHub Container Registry:

docker pull ghcr.io/grc-iit/chronolog:v3.0.0

This downloads the ChronoLog v3.0.0 image to your local machine, with a pre-installed release build ready to use.


Step 2: Run the ChronoLog Container​

Next, launch the ChronoLog container:

docker run -it --rm --name chronolog-instance ghcr.io/grc-iit/chronolog:v3.0.0

This command:

  • Starts a new ChronoLog container.
  • Runs it in interactive mode (-it), opening a terminal session inside the container.
  • Removes the container (--rm) when it stops, so it doesn't persist unnecessarily.
  • Assigns a name (--name chronolog-instance) for easier reference.

Once executed, you should see a welcome message. At this point, you are inside the ChronoLog container. The working directory is automatically set to the ChronoLog installation ($CHRONOLOG_HOME).


Step 3: Verify That ChronoLog Is Running​

Open a new terminal window (outside the Docker container) and run:

docker ps

You should see a container named chronolog-instance. For example:

CONTAINER ID   IMAGE                                    COMMAND       CREATED          STATUS          PORTS     NAMES
bfbc93af1d50 ghcr.io/grc-iit/chronolog:v3.0.0 "/bin/bash" X seconds ago Up X seconds chronolog-instance

This indicates your ChronoLog container is up and running successfully!

Deploy ChronoLog Components​

With the ChronoLog environment set up, it's time to deploy the system. We'll use the ChronoLog single-node deployment script to start all necessary components.

Step 1: Run the Deployment Script​

Inside the container, execute the deployment script to start the ChronoLog system:

tools/deploy/deploy_local.sh --start

No cd is needed — the container's working directory is already set to the ChronoLog installation.

This command will deploy a basic ChronoLog architecture, including:

  • One ChronoVisor (log controller)
  • One ChronoKeeper (log store manager)
  • One ChronoGrapher (query and indexing service)
  • One ChronoPlayer (stream processor)

Step 2: Verify That ChronoLog Components Are Running​

To ensure all components are properly deployed, run the following command:

pgrep -fla 'chrono-visor|chrono-keeper|chrono-grapher|chrono-player'

You should see an active process for each ChronoLog component:

/home/grc-iit/chronolog-release-install/chronolog/bin/chrono-visor ...
/home/grc-iit/chronolog-release-install/chronolog/bin/chrono-keeper ...
/home/grc-iit/chronolog-release-install/chronolog/bin/chrono-grapher ...
/home/grc-iit/chronolog-release-install/chronolog/bin/chrono-player ...

If all four processes appear, your ChronoLog deployment is successfully running!

Stop ChronoLog​

To stop all ChronoLog services:

tools/deploy/deploy_local.sh --stop

To also remove generated logs, configuration artifacts and stored data:

tools/deploy/deploy_local.sh --clean

Next: Client + Performance test​

Once ChronoLog is up and running, continue with the Client + Performance test to generate load and evaluate performance.