Introduction to Docker

🟑 LEVEL 2 | Prerequisites: Linux basics | Time: 4-6 hours total

Docker Logo

Learning Path

This module teaches Docker through a structured progression designed for master students in mathematics and scientific computing:

πŸ› οΈ Setup

πŸš€ Automation & Orchestration

Quick Start

If you’re in a hurry, here’s the minimum path:

1. Install Docker       β†’ 15 min
2. Basic commands       β†’ 30 min
3. Dockerfile basics    β†’ 45 min
4. GitHub Actions       β†’ 30 min
                        --------
   Total:                 2 hours

Module Contents

Concepts (Why Containers?)

What are Containers?

Understand containers vs. VMs, images vs. containers, OCI standards.

Problems Docker Solves

The "matrix from hell", reproducibility challenges, and how Docker addresses them.

Docker Architecture

Client-server model, Docker daemon, registries, and how containers work.

Hands-On Skills

Installation Guide

Install Docker Desktop (Windows/macOS) or Docker Engine (Linux).

Essential Commands

docker run, docker build, docker exec, volumes, ports, and more.

Dockerfile Fundamentals

Create custom images for your mathematical computing projects.

Advanced Topics

Docker Compose

Orchestrate multi-container applications (e.g., Jupyter + database).

GitHub Actions + Docker

Automate image building and publishing with CI/CD.

Why Docker for Mathematics Students?

Challenge Docker Solution

"Works on my machine"

Package exact versions of Python, NumPy, MATLAB in a container

Complex dependencies

Dockerfile captures all setup steps reproducibly

Sharing research

docker pull yourimage gives collaborators your exact environment

HPC deployment

Build locally, run on clusters (via Apptainer/Singularity)

Long-term preservation

Archive container images with published papers

Prerequisites Check

Before starting, ensure you have:

  • Basic Linux command-line skills (cd, ls, mkdir)

  • A computer with 8GB+ RAM and 20GB+ free disk space

  • Administrator/sudo access for installation

  • A GitHub account (for the Actions tutorial)

Ready? Start with What are Containers? β†’