Containers have revolutionized how businesses scale and manage web applications by offering flexibility, efficiency, and ease of deployment. They are a key driver behind the shift of micro and small enterprises to cloud-based infrastructure. As a result, there is a growing demand for professionals skilled in containerization. This course provides a thorough, hands-on guide to building and running containerized applications using Docker and Kubernetes.
You’ll begin with the fundamentals of Docker—learning how it streamlines web application development. From there, you’ll dive into Docker’s architecture, working with images, Dockerfiles, and containers. You’ll also explore the Container Networking Model (CNM), Docker storage, and get introduced to Docker Compose for managing multi-container applications.
As you progress, you'll move into container orchestration using Docker Swarm and pods, and then take a deep dive into Kubernetes—learning its core concepts and how to manage applications at scale.
Who should take this Course?
The Kubernetes and Docker Online Course is ideal for DevOps engineers, system administrators, software developers, and IT professionals who want to build, deploy, and manage containerized applications at scale. It’s also suitable for individuals preparing for container orchestration roles or certifications like CKA or DCA. Prior knowledge of Linux, basic command-line usage, and familiarity with containerization concepts is recommended for a successful learning experience.
Course Curriculum
Introduction
Course Outline
Making a Web Application
Demo: Simple Web Application
A Forest of Virtual Machines (VMs)
Hello Containers
Hello Docker!
Demo: Installing Docker on Linux
Demo: Containerizing a Simple Web Application
Docker Architecture and Dockerfiles
Stages of Containerization
Working of Docker
A Quick Look at the Format of a Dockerfile
Demo: Fundamental Instructions of a Dockerfile
Demo: Configuring a Dockerfile
Demo: Execution Instructions of a Dockerfile
Demo: Expose Instructions of a Dockerfile
Demo: Miscellaneous Instructions of a Dockerfile – Part 1
Demo: Miscellaneous Instructions of a Dockerfile – Part 2
Docker Images and Containers
Demo: Docker Hub Walkthrough
Understanding Docker Images
Working with Docker Images
Demo: Know Your Docker Image | Inspect and History
Demo: Cleaning up Docker Images
A Container is Born!
Container lifecycle
Demo: Container Run versus Create
Demo: Working with Containers - Starting, Stopping, Restarting, and Renaming
Demo: Working with Containers – Attach and Exec
Demo: Inspecting and Committing Container
Demo: Container Exposure – Container Port Mapping
Demo: Container Clean-up – Pruning and Removing
Docker Networks – Making Containers Talk!
Multi-container Applications and Introduction to Networking in Docker
Container Networking Model (CNM) of Docker
Docker's Native Network Drivers
Demo: Creating Docker Networks
Demo: Working with Docker Networks – Connecting, Disconnecting, Inspecting, and Cleaning
Ping One Container from another
Storage with Docker
Never Lose a "Bit" of Your Data
Demo: Working with Volumes - Creating, Listing, and Removing
Demo: When Containers Meet Volumes
Demo: Working with Bind Mounts
Demo: Hosting the 2048 Containerized Game
Docker Compose
Introduction to Docker Compose
Structure of Docker Compose
Setting up Docker Compose
Demo: WordPress on Docker Compose
Demo: Introduction to Docker Compose Command Line Interface (CLI)
Container Orchestration with Docker Swarm.
Introduction to Container Orchestration and Docker Swarm
Handling Swarm Failure
Demo: Installing VirtualBox
Demo: Installing Docker Machine
Demo: Setting up the Swarm Cluster
Demo: Initializing the Swarm Cluster
Demo: Working with Swarm nodes – List and Inspect
Demo: Creating a Service on Swarm
Demo: Making a Node Leave Your Swarm
Demo: Scaling and Updating with Swarm
Introduction to Kubernetes
What about the More Popular One?
Kubernetes: An Origin Story
Kubernetes: Architecture
Demo: Bootstrapping Kubernetes Cluster on Google Cloud Platform (GCP)
Understanding Container Orchestration with Pods
What are Pods?
Operating Kubernetes
Working with Pods
Lifecycle of a Pod
Demo: Managing a Pod's Lifespan with Lifecycle Handlers
Demo: Adding a Container's Command and Arguments to Pods
Demo: Configuring a Container's Environment Variables with Pods
Labels, Selectors, and Namespaces
Demo: Working with Namespaces
Demo: Pod Resource Management
Kubernetes Workloads
Kubernetes Controllers – Concept and Types
Introduction to ReplicaSets
Working with ReplicaSets
Introduction to Deployments
Demo: Working with Deployments
Introduction to Jobs
Demo: Working with Jobs
Networking and Storage with Kubernetes
Introduction to Services and Service Types
Demo: Working with ClusterIP Services
Demo: Working with NodePort Services
Introduction to Storage in Kubernetes
Demo: Mounting Volume to a Pod
Demo: Mounting Projected Volume to a Pod – Secrets
Demo: Good Old MySQL WordPress Combination with Kubernetes
Advanced Orchestration with Kubernetes
BlackRock Case Study
Node Eviction from a Kubernetes Cluster
Demo: Rolling Updates – Rollout, Pause, Status Check
Introduction to Taints and Tolerations
Demo: Scheduling Pods Using Taints
Demo: Autoscaling Kubernetes Cluster Using Horizontal Pod Autoscaler (HPA)