Docker and Kubernetes are important technologies that can help you scale your applications.

Docker is a platform for packaging, deploying, and running applications in containers. Kubernetes is a system for managing containerized applications across a cluster of nodes. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

We just published a 6-hour course on the freeCodeCamp.org YouTube channel that will provide you with a hand-on introduction to Docker and Kubernetes.

Guy Barrette teaches this Docker Containers and Kubernetes Fundamentals course for beginners. Guy is a developer & trainer with more than 25 years of experience. He is a Microsoft MVP, frequent conference speaker, and was the leader of the Montreal .NET User Group for more than 23 years. All this is to say that he is the perfect person to teach you about Docker and Kubernetes.

Learn how to containerize applications with the Docker CLI and Visual Studio Code. Learn how to use push and pull container images on Docker Hub, a container registry, and create multi-container applications using Docker Compose. Learn about the Kubernetes architecture and how it works. Run it locally and use the Kubernetes CLI and Visual Studio Code to run, debug and troubleshoot applications and services. Learn about pods and the different workloads available.

Here are the sections in this comprehensive course:

Introduction

  • Course Introduction
  • Course Setup

Introduction to Microservices

  • Microservices Concepts
  • Microservices Anti Patterns
  • Microservices Advantages and Drawbacks

Welcome to Cloud Native!

  • What are Cloud Native and the Cloud Native Foundation
  • Cloud Native Concepts
  • Cloud Native Hands-On

Introduction to Containers

  • Container Concepts
  • What is Docker?
  • Docker Hands-On
  • Basic Commands
  • Basic Commands Hands-On
  • Running Containers
  • Running Containers Hands-On
  • Building Containers
  • Building Containers Hands-On

Visual Studio Code

  • The Docker Extension
  • The Docker Extension Hands-On

Persisting Data

  • Containers are Ephemerous and Stateless
  • Docker Volumes Concepts
  • Using Docker Volumes Hands-On

Docker Compose

  • Understanding the YAML File Structure
  • Docker Compose Concepts
  • Using Docker Compose
  • Using Docker Compose Hands-On
  • Docker Compose Sample App Hands-on
  • Docker Compose Features

Container Registries

  • Container Registries Concepts
  • Push/Pull Images from Docker Hub
  • Push/Pull Images from Docker Hub Hands-On

Kubernetes Concepts

  • Kubernetes Concepts
  • How to Run Kubernetes Locally
  • How to Run Kubernetes Locally Hands-On
  • Kubernetes API
  • Using Kubectl Hands-On
  • The Declarative Way vs the Imperative Way
  • The Declarative Way vs the Imperative Way Hands-On

Namespaces

  • Namespaces Concepts
  • Namespaces Hands-On

Nodes

  • Master Node Concepts
  • Worker Nodes Concepts
  • Nodes Hands-On

Pods

  • Pod Concepts
  • The Pod Lifecycle
  • Defining and Running Pods
  • Pod Hands-On
  • Init Containers
  • Init Containers Hands-On

Selectors

  • Selector Concepts
  • Selector Hands-On

Multi Container Pods

  • Common Patterns for Running More then One Container in a Pod
  • Multi Container Pods Networking Concepts
  • Multi Containers Pods Hands-On

Workloads

  • Introduction to Workloads
  • ReplicaSet Concepts
  • ReplicaSet Hands-On
  • Deployment Concepts
  • Deployment Hands-On
  • DaemonSet Concepts
  • DaemonSet Hands-On
  • StatefulSet Concepts
  • StatefulSet Hands-On
  • Job Concepts
  • Job Hands-On
  • CronJob Concepts
  • CronJob Hands-On

Updates

  • Rolling Updates Concepts
  • Rolling Updates Hands-On
  • Blue-Green Deployments
  • Blue-Green Deployments Hands-On

Services

  • What are services?
  • ClusterIP Concepts
  • ClusterIP Hands-On
  • NodePort Concepts
  • NodePort Hands-On
  • Load Balancer Concepts
  • Load Balancer on Docker Desktop Hands-On

Storage & Persistence

  • Storage & Persistence Concepts
  • The Static Way
  • The Static Way Hands-On
  • The Dynamic Way

Application Settings

  • ConfigMaps Concepts
  • ConfigMaps Hands-On
  • Secrets Concepts
  • Secrets Hands-On

Observalibilty

  • Startup, Readiness and Liveness Probes Concepts
  • Probes Hands-On

Dashboards

  • Dashboards Options
  • Lens Hands-On
  • K9s Hands-On

Scaling

  • Auto Scaling Pods using the Horizontal Pod Autoscaler
  • Auto Scaling Pods Hands-On

Conclusion

  • Course Conclusion

Watch the full course below or on the freeCodeCamp.org YouTube channel (6-hour watch).