Skip to content

sm4rtm4art/Docker-Example

Repository files navigation

Docker Learning Curriculum 🐳

Master Docker fundamentals through multiple programming languages

A comprehensive, production-ready Docker learning path that teaches Docker concepts first, then applies them across Java, Python, and Rust. Built for developers who want to understand Docker deeply, not just copy commands.

🎯 Philosophy: Docker First, Language Second

Traditional approach: "Learn Docker with Python"
Our approach: "Learn Docker, apply to YOUR language"

  • 🐳 Docker concepts are universal - master them once
  • πŸ”„ 70% content reuse across all language tracks
  • πŸ›‘οΈ Security-first from day one (always non-root)
  • 🎯 Real problem solving (container cleanup, monitoring)
  • πŸš€ Production patterns throughout

πŸ“š Learning Path

Phase Duration Modules Focus Outcome
πŸƒ Core Foundation 4.5 hours 00-02 Docker fundamentals + language quickstart Container confidence
πŸƒ Core Skills 8 hours 03-05 Dockerfiles, Compose, development workflow Multi-service mastery
πŸƒ Core Production 3 hours 06-07 Security, production operational excellence Secure deployment
πŸš€ Advanced Monitoring 4 hours 08 Complete monitoring stack (Prometheus/Grafana) Production monitoring
πŸš€ Advanced Ecosystem 4 hours 09-11 CI/CD, orchestration, alternatives Ecosystem expertise

Core Path: 15.5 hours (Modules 00-07) - Everything needed for production Docker
Advanced Path: +8 hours (Modules 08-11) - Monitoring, CI/CD, and ecosystem mastery
Total: 20-24 hours of hands-on learning

πŸ—οΈ What You'll Build

Core Project: Task Management API

  • Task API in your language of choice (Java Spring Boot, Python FastAPI, Rust Actix)
  • PostgreSQL database with persistent storage
  • Complete monitoring stack (Prometheus + Grafana)
  • Production deployment with security, health checks, and cleanup automation

Advanced Projects:

  • Multi-architecture Docker builds (ARM + x86)
  • Container registry management (Docker Hub, ECR, GCR)
  • CI/CD pipelines with GitHub Actions
  • Migration from Docker to Podman

πŸš€ Quick Start

# Clone the repository
git clone https://github.com/sm4rtm4art/Docker-Example.git
cd Docker-Example

# Choose your path
cd docker-mastery-multitrack

# Start with prerequisites
cd 00-prerequisites

Language Track Selection

Choose your language track, but remember - the Docker concepts are universal:

  • Java: Spring Boot + Maven (enterprise-ready)
  • Python: FastAPI + UV (modern Python tooling)
  • Rust: Actix-web + Cargo (performance-focused)

πŸ“‹ Prerequisites

  • Docker Desktop installed and running
  • Basic terminal/command line experience
  • One programming language (Java, Python, or Rust)
  • Git for version control

No prior Docker experience required!

βš™οΈ Tested With

This curriculum is actively tested and maintained with:

  • Docker Desktop: 4.25+ (or Docker Engine 24.0+)
  • Docker Compose: v2.23+ (included in Docker Desktop)
  • BuildKit: 0.12+ (enabled by default in modern Docker)
  • Operating Systems: Windows 10/11, macOS 12+, Ubuntu 20.04+

Update Policy: We test with the latest stable Docker versions quarterly and update examples as needed. If you encounter issues with newer versions, please check our troubleshooting guide.

πŸŽ“ Learning Features

πŸ”§ Hands-On Exercises

  • Real debugging scenarios ("break then fix")
  • Container cleanup challenges
  • Security vulnerability exercises
  • Performance optimization tasks

πŸ›‘οΈ Security-First Approach

  • Always non-root containers
  • Read-only filesystems where possible
  • Secrets management best practices
  • Vulnerability scanning integration

🧹 Cleanup Integration

  • Container lifecycle management throughout
  • Volume and network cleanup strategies
  • Development vs production separation patterns
  • Monitoring and maintenance automation

πŸ“– Curriculum Structure

The complete curriculum is located in docker-mastery-multitrack/ with detailed learning materials.

Complete Learning Path:

πŸ“š Docker Curriculum Guide - Full module breakdown and learning path

Key Documents:

πŸ“š Learning Resources

By Module

Foundation (Modules 00-03)

Dockerfiles & Images (Module 03)

Multi-Container Apps (Module 04)

Security (Module 06)

Monitoring (Module 08)

πŸ”— Additional Resources

Helper Scripts

  • scripts/ - Cross-platform utilities (Windows + Unix)
  • Docker cleanup automation
  • Development environment setup
  • Health check utilities

Examples

  • examples/ - Reference implementations
  • Security-focused Dockerfiles
  • Volume management patterns
  • Container networking examples

Emergency Help

🌟 Why This Curriculum?

For Developers:

  • Master Docker once, apply everywhere
  • Build production-ready containerization skills
  • Understand security and operational best practices

For Teams:

  • Consistent Docker knowledge across language stacks
  • Shared security and operational patterns
  • Reduced onboarding time for new technologies

For Organizations:

  • Standardized containerization approach
  • Security-first development practices
  • Production-ready deployment patterns

🀝 Contributing

This is an open educational resource. Contributions welcome!

  • Report issues for unclear instructions
  • Suggest improvements for better learning
  • Add language tracks following our patterns
  • Share real-world scenarios for exercises

πŸ“„ License

Educational content is available under LICENSE for learning and teaching purposes.


"The best way to learn Docker is to master the concepts first, then apply them to solve real problems."
Start your journey with Prerequisites ➑️

About

Repo for teaching docker :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •