Welcome to the Containers Lab repository. This project is a comprehensive, progressive learning path designed to take you from the fundamental primitives of Linux containers to advanced Kubernetes orchestration.
This project includes intelligent scripts to manage your progress and environment.
The validation script checks your lab implementation against the expected state.
- Validate ALL labs:
python scripts/validate_labs.py
- Validate a SPECIFIC lab (highly recommended for performance):
python scripts/validate_labs.py 001
Note
The validator automatically detects if a lab has been "provisioned". Labs in a clean state (unstarted or reset) will show as NOT PROVISIONED in the summary table.
Since container environments can accumulate resources, use the cleanup script to reset the workspace completely.
python scripts/cleanup_all.pyThis script runs the reset.sh for every laboratory, ensuring no dangling containers, networks, or volumes interfere with your next exercise.
- Docker 25+
- Python 3.10+
- Make (Optional, recommended for development speed)
- Pytest (installed via
pip install -r requirements.txt)
The goal of this repository is to provide high-quality, interactive, and self-validating laboratories about containerization technologies. Every lab is designed to be:
- Hands-on: Learn by doing, not just reading.
- Self-Validating: Automated tests check your progress.
- Portable: Run everything in your local environment with minimal dependencies.
This repository follows a Spec Driven Development approach. Before any lab is implemented:
- A Specification (
spec.md) is created to define learning objectives and validation criteria. - The Laboratory is built based on the spec.
- Automated Tests (
test_lab.py) are implemented to verify the learning outcomes.
/labs: Contains the interactive laboratories./specs: Contains the design specifications for each lab./scripts: Utility scripts for validation and management./.specify: Internal project configuration and agentic memory.
To participate in these labs, you will need:
- Docker (v25.0.0 or superior)
- Python 3.10+ (for validation scripts)
- kubectl & Helm (for orchestration modules)
- Navigate to the
labs/directory. - Choose a laboratory (starting with
001-container-fundamentals). - Read the
CONCEPT.mdfirst to understand the theoretical background. - Follow the hands-on instructions in the lab's
README.md. - Run the validation script to check your work.
Each laboratory follows a strict educational structure designed for deep learning:
- Theoretical Foundation (
CONCEPT.md): A separate deep dive into the "why". Read this before jumping into terminal commands. - Actionable Instructions (
README.md): Clear, step-by-step hands-on exercises. - Automated Validation (
test_lab.py): Immediate feedback on your implementation.
Version: 0.6.0 | Author: MeloDev