Introduction to Docker
Before installing the Supra CLI, you will need to install Docker. It’s helpful to understand what Docker is, how it works, and why we use it for this setup. This page includes some information that you will find useful once you move on to setting up the Supra CLI.
Prerequisites
What Is Docker?
Docker is a platform that packages applications into lightweight, portable containers. These containers include everything an app needs to run: code, runtime, libraries, and environment variables.
Why Use Docker with the Supra CLI?
Docker provides a consistent, repeatable environment that eliminates:
OS differences (Linux, Mac, Windows)
Dependency/version mismatches
“It works on my machine” issues
With Docker, developers can run the Supra CLI in a pre-configured environment without needing to install the CLI or dependencies locally.
What Is Docker Compose?
Docker Compose is a tool used to define and run multi-container Docker applications using a YAML file (compose.yaml
or docker-compose.yml
).
In our case, the Compose file:
Defines the container configuration for the Supra CLI
Specifies the image to use
Sets up bind mounts to share files between your machine and the container
Bind Mounts
A bind mount is a way to share directories between your host machine and the container.
In the Supra CLI setup:
The
supra/configs
folder on your host is bind-mounted to theconfigs/
folder inside the container.The
supra/move_workspace
folder on your host is bind-mounted to themove_workspace/
folder inside the container.This means anything you create/do inside these folders within the container will appear on your host — and vice versa.
Entering the Shell of a Container
Once you proceed with the CLI setup, you'll create a docker container containing the CLI binary. To interact with the CLI, you'll need to enter into the shell of the container. When a docker container is running, you can open a terminal session inside of it using:
docker exec -it supra_cli /bin/bash
exec
tells Docker to run a command inside an existing container.-it
allows interactive terminal input/output.supra_cli
is the name of the container./bin/bash
starts a shell session.
This is useful when you want to:
Run the Supra CLI directly (
supra move tool ...
)Explore the file system
Debug issues inside the container
Common Docker Commands
Some of these commands may come in handy later.
docker ps --all
Lists all containers (running and stopped)
docker start <container>
Starts an existing container
docker stop <container>
Stops a running container
docker exec -it <container> /bin/bash
Enters the shell of a container
docker logs <container>
Prints logs from a container
docker rm <container>
Removes a container
docker images
Lists downloaded Docker images
docker volume ls
Lists Docker volumes (persistent storage)
Common Docker Compose Commands
Some of these commands may come in handy later.
docker compose up -d
Starts containers in detached (background) mode
docker compose down
Stops and removes containers, networks, and volumes
docker compose ps
Lists containers defined in your Compose file
docker compose logs
Shows logs from all Compose services
docker compose restart
Restarts all services defined in the Compose file
docker compose pull
Pulls the latest versions of images from the registry
docker compose build
Builds or rebuilds services defined in the file
Summary
Docker simplifies the Supra CLI experience by:
Eliminating setup headaches
Ensuring all developers use the same runtime
Providing isolated environments with shared config folders
If you're new to Docker, this may feel like a lot — but once set up, you’ll rarely need to modify it again.
Want to Learn More?
Last updated