Module 1: Introduction to Docker
What is Docker?
Benefits of containerization
Docker vs Virtual Machines
Docker architecture (Engine, CLI, Daemon, Registry)
Module 2: Getting Started
Installing Docker on Linux/Windows/Mac
Docker CLI basics (run, ps, stop, rm, images, etc.)
Docker Hub and pulling images
Running your first container (hello-world, nginx, ubuntu)
Module 3: Docker Images
Understanding Docker Images and Layers
Creating custom images with Dockerfile
Dockerfile instructions: FROM, RUN, COPY, ADD, CMD, ENTRYPOINT, etc.
Image tagging and pushing to Docker Hub
Module 4: Docker Volumes
Introduction to Volumes
Volume vs Bind Mounts
Managing data with Docker Volumes
Backup and restore volumes
Module 5: Docker Networking
Bridge, Host, None, and Overlay networks
Creating custom networks
Connecting multiple containers via network
Port mapping and exposing services
Module 6: Docker Compose
Introduction to Docker Compose
Writing docker-compose.yml
Multi-container applications (e.g., Node.js + MongoDB)
Compose commands and scaling services
---
Advanced Docker Topics
Module 7: Dockerfile Best Practices
Multi-stage builds
Caching strategies
Image size optimization
Security best practices
Module 8: Docker Registry & Image Management
Self-hosted Docker Registry
Working with AWS ECR / GitHub Container Registry
Cleaning up unused images and containers
Image vulnerability scanning tools (e.g., Trivy, Clair)
Module 9: Docker Security
Least privilege principle
Docker Content Trust
Seccomp, AppArmor, and SELinux
Running containers as non-root user
Module 10: Docker in CI/CD
Integrating Docker in GitHub Actio
ns, GitLab CI/CD, Jenkins
Building & pushing Docker images in pipelines
Using Docker for test automation