Containers & Orchestration
Who this course is for?
Beginners who want to learn modern DevOps tools like Docker & Kubernetes.
Developers aiming to containerize their applications for consistency and scalability.
System admins looking to automate deployments and manage infrastructure efficiently.
Anyone preparing for DevOps/Cloud Engineer roles in the industry.
Why take this course?
Learn hands-on with real-time deployment, scaling, and container management.
Helps clear technical rounds focused on DevOps/cloud tools in interviews.
Strong foundation for moving towards advanced DevOps, AWS, or CI/CD topics
What you will learn?
Understand how Docker containers work and how to build, run, and manage them.
Write Dockerfiles, create custom images, and run multi-container apps with Docker Compose.
Learn Kubernetes architecture and use
kubectl
to manage pods, deployments, and services.Practice deploying real applications on Kubernetes using YAML configurations.
Containers & Orchestration
1. Docker Fundamentals ● Introduction to Containerization - Virtual Machines vs Containers - Use cases and benefits of containerization - How Docker fits into DevOps lifecycle ● Installing Docker - Installation on Linux, Windows, and Mac - Verifying installation and Docker daemon status ● Docker Architecture - Docker Engine, Client-Server architecture - Docker Images, Containers, Registries - Layered filesystem & Union File System ● Docker CLI Essentials with Practicals - docker run, docker ps, docker stop, docker start, docker exec - docker kill, docker rm, docker pause, docker unpause ● Docker Image Management - Pulling and pushing images from Docker Hub - Exploring image tags and versioning - Removing unused images (docker rmi) ● Dockerfile & Image Creation - Writing Dockerfile: FROM, RUN, CMD, ENTRYPOINT, COPY, WORKDIR, ENV - Building images with docker build - Practical: Create a Dockerfile for a Python/Node.js app - Multistage builds and best practices for small image size ● Docker Volumes & Persistence - Types of storage: Volumes vs Bind Mounts - Creating and mounting volumes - Sharing data between containers - Practical: Bind host directory into container and persist logs ● Docker Networking - Default bridge network and custom bridge network - Container-to-container communication - Port mapping (-p 8080:80) and exposing services - Practical: Connect two containers via custom bridge ● Docker Compose (Multi-container Applications) - Writing docker-compose.yml file - Defining services, networks, volumes - Building and running using docker-compose up - Practical: Define frontend and backend in a single Compose file ● Docker Registry - Docker Hub vs Private Registries - Tagging and pushing images - Basic Docker Registry setup for internal use ● Docker Security Basics - Avoiding root containers - Best practices for Dockerfile - Scanning images for vulnerabilities using tools like Trivy
2. Kubernetes Basics ● Introduction to Kubernetes - What is Kubernetes and why it is needed - Comparison with Docker Swarm - Real-world use cases of Kubernetes ● Kubernetes Architecture - Master components: kube-apiserver, etcd, kube-controller-manager, kube-scheduler - Node components: kubelet, kube-proxy, container runtime - Control plane vs data plane ● Setting Up Kubernetes - Using Minikube / KIND for local setup - kubectl configuration and commands - Kubernetes Dashboard overview ● Core Kubernetes Objects - Pods: basic unit of deployment - ReplicaSets: ensuring desired pod count - Deployments: declarative updates and rollbacks - Practical: Create and update a Deployment for a web app ● Kubernetes Services - ClusterIP: internal service - NodePort: external access to pods - LoadBalancer: cloud-level load balancing - Practical: Expose a deployment with a NodePort service ● Configuration Management - ConfigMaps: injecting configuration data - Secrets: injecting sensitive data securely - Practical: Use ConfigMap to inject environment variables into container ● Scaling & Auto-scaling - Manual scaling using kubectl scale - Horizontal Pod Autoscaler (HPA) with CPU metrics - Practical: Autoscale based on load using HPA ● Updates & Rollbacks - Rolling updates strategy - Rollbacks using kubectl rollout undo - Practical: Perform a rolling update and then rollback ● Namespaces & Resource Quotas - Organizing resources in logical groups - Applying resource limits (CPU, memory) - Practical: Create dev and prod namespaces ● Persistent Storage in Kubernetes - Volumes, PersistentVolume (PV), PersistentVolumeClaim (PVC) - StorageClasses overview - Practical: Mount a volume using PVC in a Pod ● Helm (Introduction) - What is Helm and why it’s useful - Installing Helm and using stable charts - Practical: Install nginx via Helm ● Monitoring & Debugging - kubectl commands: logs, describe, exec - Practical: Troubleshoot failed pods using kubectl describe - Brief intro to monitoring stack: Prometheus + Grafana