A comprehensive collection of hands-on labs designed to master Docker, Kubernetes, and related DevOps technologies. Each lab is a self-contained mini-project with clear objectives, specific constraints, and validation criteria. Progress from beginner to production expert through practical, real-world scenarios. This readme is generated by Copilot. The 5 first labs too.
Build foundational Docker knowledge with practical, hands-on projects.
| Lab | Title | Concepts | Status |
|---|---|---|---|
| 01 | Multi-stage Node.js Build | Multi-stage builds, optimization, layer caching | Not Started |
| 02 | Python Environment & Secrets | Environment variables, secrets management, configuration | Not Started |
| 03 | PostgreSQL & Volumes | Data persistence, volumes, backup/restore | Not Started |
| 04 | Network Isolation | Docker networking, service isolation, DNS | Not Started |
| 05 | MERN Stack with Compose | Multi-container orchestration, full-stack apps | Not Started |
The rest of the labs have random level attributions. The goal being to cover most of the most trending Devops subjets through labs. Topics being in general, production deployments, CI/CD, and DevOps integration, enterprise orchestration and cloud-native architectures.
Track your progress by updating the status column in your fork:
- Not Started
- In Progress
- Completed
- Completed + Bonus Challenges
docker-mastery-labs/
├── README.md (this file - index of all labs)
├── docs/
│ ├── learning-path.md (created by Copilot. Not functional at ALL)
│ └── resources.md (created by Copilot but pretty solld roadmap)
├── lab-01-multistage-node/
│ ├── README.md (lab instructions)
│ ├── app/ (your work directory)
│ └── solution/ (reference solution)
├── lab-02-python-env-secrets/
│ ├── README.md
│ └── app/
├── lab-03-postgres-volumes/
│ ├── README.md
│ └── data/
├── lab-04-network-isolation/
│ ├── README.md
│ └── services/
└── lab-05-mern-compose/
├── README.md
└── stack/
This repository utilizes an automated pipeline to continuously generate new hands-on labs using AI technology and web scraping.
The lab generation process follows a multi-stage pipeline:
The system scrapes trending DevOps content from multiple authoritative sources:
- Dev.to RSS feeds
- GitHub Trending repositories
- CNCF Blog
- Reddit communities (r/devops, r/kubernetes, r/docker, r/ansible)
- Hacker News (filtered for DevOps topics)
- Medium DevOps tags
From the scraped content, the system:
- Extracts relevant topics and technologies
- Identifies key concepts and learning opportunities
- Selects topics that align with the repository's learning progression
- Ensures diversity across Docker, Kubernetes, Helm, ArgoCD, and Ansible
Using Google Gemini AI, the system generates complete lab structures including:
- Comprehensive objectives and learning goals
- Step-by-step task descriptions
- Validation criteria and verification commands
- Hints and bonus challenges
- Relevant documentation links
- Difficulty assessment (beginner, intermediate, advanced, expert)
The file creator component:
- Generates the lab directory structure
- Creates README.md with complete instructions
- Sets up starter files and solution directories
- Assigns sequential lab numbers
- Organizes labs by difficulty level
The lab generation is automated through GitHub Actions:
Schedule:
- Runs automatically at intervals of 3 or 5 hours (runs at 00:00, 03:00, 08:00, 11:00, 16:00, 19:00 UTC)
- Switches to daily generation once 50 labs are reached
- Can be manually triggered with technology specification
Process:
- Checks existing lab count
- Determines if generation should proceed
- Scrapes current DevOps content
- Selects topic and technology
- Generates lab using AI
- Creates lab files in repository
- Commits and pushes new lab
Technologies Supported:
- Docker
- Kubernetes
- Helm
- ArgoCD
- Ansible
Developers can manually generate labs using the Python scripts:
cd scripts
pip install -r requirements.txt
python lab_generator.py --technology dockerAvailable options:
--technology <tech>- Force specific technology--skip-scrape- Use fallback topics--dry-run- Test without creating files--test- Run local tests
See scripts/README.md for detailed documentation.
Contributions are welcome. If you find issues or have improvements:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Inspired by real-world Docker use cases and community best practices. Lab content is dynamically generated using Google Gemini AI and curated from trending DevOps topics across the web.
If you have questions, suggestions, or feedback:
- Open an issue on GitHub
- Share your learning journey
- Help improve the labs for others