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.

Software Testing Syllabus

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

Scroll to Top