Kubernetes and Docker Online Course
About the Course
Containers are empowering businesses to scale fearlessly and manage their web applications hassle-free. They are the prime reason why micro and small enterprises are migrating to the cloud. All of this has undoubtedly led to an enormous demand for professionals with containerization skills. This course is a comprehensive explanation of what you should do to successfully build and run containerized applications using Docker and Kubernetes.
The course starts with an introduction to Docker and explains how it helps in developing web applications. Next, you will explore the architecture of Docker and become familiar with Docker images, Docker files, and containers. Moving along, you will work with the Container Networking Model (CNM) and Docker storage and get an introduction to Docker Compose. Towards the end, you will learn to perform container orchestration with Docker Swarm and pods and get to grips with the concepts of Kubernetes.
By the end of this course, you will have all the skills needed to build, deploy, and manage containerized web applications on local premises and on the cloud using Kubernetes and Docker.
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)
- Demo: Deploying Apache ZooKeeper Using Kubernetes
Managed Kubernetes as a Service on the Cloud.
- Pokémon Go Case Study
- On-premise Kubernetes or Managed Kubernetes on the Cloud? Make a Choice!
- Demo: Setting up a Google Kubernetes Engine (GKE) Cluster
- Demo: Accessing the Google Kubernetes Engine (GKE) Cluster
- Demo: Persistent Volume and Load Balancing on Google Kubernetes Engine (GKE)
- Demo: Kubernetes on Microsoft Azure Cloud
- Demo: Docker GUI with Kitematic
- Demo: Minikube Series – Installing Minikube
- Demo: Minikube Series – Getting Started with Minikube
Serverless Kubernetes
- Introduction to Serverless Kubernetes
- Activating Cloud Run API on Google Cloud Platform (GCP)
- Your First Service on Cloud Run
Conclusion
- Conclusion