Custom Software with Docker

This article introduces Docker's key concepts and explains how it is utilized at Qarnot. It also outlines which profiles and constants can be configured to run a Docker image within a task.

At Qarnot, we leverage Docker to run tasks efficiently on our distributed infrastructure, enabling seamless scalability and deployment of custom software.

What is a container?

A container is a self-contained, lightweight, and executable package that includes everything required to run a piece of software—code, runtime, system tools, libraries, and settings. Containers ensure consistency and efficiency across different environments.

Containers have the following characteristics

Containers are now the standard for packaging applications in modern IT and cloud environments. At Qarnot, we rely on Docker, one of the most popular containerization platforms. To dive deeper into Docker, visit the Docker Documentation.

Docker and Qarnot

Docker is the primary technology Qarnot uses to run computations on its platform. When you execute a task on Qarnot, it consists of three main components:

  1. A Docker image: Packages the software and its dependencies.
  2. User's data: Mounted inside the container when it starts.
  3. Task settings: These include task parameters like network access, hardware configuration, and specific constraints, managed through Profiles

Where to find docker images?

There are several options for sourcing Docker images for use on Qarnot:

Docker profiles

This section covers Docker profiles, which are necessary for using Docker containers on Qarnot. These profiles define how Docker interacts with Qarnot’s infrastructure, including network access, hardware, and cluster settings. If you want to learn how to use Docker images in your tasks, refer to our guide.

To use Docker in your tasks, choose a Docker-enabled profile. Below is a list of profiles and their descriptions:

Constants to Use in Docker Profiles

When using Docker profiles on Qarnot, several constants must be configured to define the behavior of your task:

Cluster and SSH Profiles

If you’re using a cluster profile (e.g., docker-cluster-xyz), the following constants are also important:

If your profile includes SSH access (e.g., docker-network-ssh), you’ll need to configure SSH keys:

For further information on using Docker on Qarnot, please refer to our detailed guides.

Related Articles

To start using docker images on Qarnot please read the following guides