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:v2.5.0
This downloads the ChronoLog v2.5.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:v2.5.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:v2.5.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_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_local.sh --stop
To also remove generated logs, configuration artifacts and stored data:
tools/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.