Docker and Kubernetes make it simpler to run code and software in different environments.

Containers are a way of packaging software. Running a container is like running a virtual machine. You can use Docker to build and deploy containers and you can use Kubernetes to manage containers.

We've released a 4-hour hands-on course on the freeCodeCamp.org YouTube channel that will teach you the fundamentals of Docker and Kubernetes.

This course was developed by Nelson Jamal from Amigoscode and Nana Janashia from Techworld with Nana. These two instructors have considerable expereince teaching both on YouTube and other platforms.

In this course, you will first learn all about Docker, including images, containers, volumes, container registry, and docker architecture.  Next, you will learn about Kubernetes, including architecture, pods, services, config maps, and deployments.

You will learn the differences between Docker and Kubernetes, allowing  you to start using these two technologies with confidence.

Here are all the topics covered in the comprehensive course:

Introduction to Docker

  • What is Docker?
  • Installing Docker
  • Images & Containers
  • Pulling NGINX Image
  • Running Containers
  • Exposing Ports
  • Exposing Multiple Ports
  • Managing Containers
  • Naming Containers
  • Volumes
  • Volumes Between Host and Container
  • Customize Website
  • Volumes Between Containers
  • Dockerfile
  • Creating Dockerfile
  • Docker Build
  • Using Node JS and Express JS with Docker
  • Dockerfile for our API
  • Running Containers for our API
  • .dockerignore
  • Caching and Layers
  • Alpine
  • Pulling Alpine Images
  • Using Alpine
  • Tags and Versions
  • Using Tags with Versions
  • Running Containers and Tags
  • Tagging Override
  • Tagging Own Images
  • Running Containers with Different Tags
  • Docker Registry
  • Create Docker Hub Repo
  • Pushing Images to Docker Hub
  • Pulling Own Images
  • Docker Inspect
  • Docker Logs
  • Docker Exec

Introduction to Kubernetes

  • What is Kubernetes?
  • Kubernetes Architecture
  • Pod, Service & Ingress
  • Config Map and Secret
  • Volumes
  • Deployments and Stateful Sets
  • Components Summary
  • Minikube and kubectl
  • Installing Minikube and kubectl
  • Create Deployment
  • Debugging Pods
  • kubectl apply -f
  • kubectl commands summary
  • Deploying MongoDB and Mongo Express
  • MongoDB Pod
  • MongoDB Internal Service
  • Deployment Service and Config Map
  • Mongo Express External Service

Watch the full course on the freeCodeCamp.org YouTube channel (4 hour watch).