Introduction to Docker
π‘ LEVEL 2 | Prerequisites: Linux basics | Time: 4-6 hours total
Learning Path
This module teaches Docker through a structured progression designed for master students in mathematics and scientific computing:
π Concepts |
π οΈ Setup |
π Building Images |
π 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 |
|
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? β