CodeBlanks Logo Icon CodeBlanks
Free 4 levels

Docker & Kubernetes

Deploy modern applications with Docker containers and Kubernetes orchestration. Containers, pods, deployments, services and Helm.

The Docker and Kubernetes course covers all levels with containers, images, Dockerfile, build, run, volumes, compose, Pods, Deployments, Services, Ingress, Helm, StatefulSets, RBAC, CRDs, operators, service mesh and disaster recovery.

  • 281 lessons
  • 19 h 52 min
  • 3 projects

No account needed, you can start right away. To save your progress, create a free account

Levels

The Docker & Kubernetes course goes from zero to expert in four levels. Start at any level you like.
Not sure of your level? Take the placement test
Beginner

Learn Docker fundamentals: containers, images, Dockerfile, build, run, volumes, compose and networking.

  • What is Docker?
  • Installation and first commands
  • First container
  • Dockerfile basics
82 lessons · 5 h 47 min See lessons →
Intermediate

Learn Kubernetes fundamentals: cluster, kubectl, Pod, Deployment, Service, ConfigMap, Secret and Namespace.

  • What is Kubernetes?
  • Minikube
  • kubectl basics
  • Pod
82 lessons · 5 h 47 min See lessons →
Advanced

Learn advanced Kubernetes: Ingress, Helm, StatefulSet, DaemonSet, Job, PV/PVC, HPA, RBAC, monitoring and logging.

  • Ingress
  • Helm
  • StatefulSet
  • DaemonSet
70 lessons · 4 h 57 min See lessons →
Expert

Learn expert Kubernetes: internals, CRD, operators, service mesh, multi-cluster, OPA and disaster recovery.

  • Kubernetes internals
  • Custom Resource Definition
  • Operator pattern
  • Service mesh - Istio
47 lessons · 3 h 21 min See lessons →

Projects you will build

At every level you combine what you learned into a real page.

How does it work?

Short explanation

Each lesson explains one concept in a few short cards; no long videos or walls of text.

Try it right away

Multiple choice, fill-in-the-blank and matching exercises lock in what you just learned.

Write it yourself

You write real code in the in-browser editor; it is checked instantly and you see the result live.

Curriculum

48 groups · 281 lessons · 19 h 52 min

Learn Docker fundamentals: containers, images, Dockerfile, build, run, volumes, compose and networking.

1
What is Docker?
6 lessons · 25 min
  1. 1 What is Docker? Learn that Docker is a container-based platform and why it is used. 4 min
  2. 2 Containers and virtual machines Learn the differences between containers and virtual machines. 4 min
  3. 3 Images and containers Learn the relationship between images and containers. 4 min
  4. 4 Docker architecture Learn the architecture of daemon, CLI and registry. 4 min
  5. 5 Use cases Learn common Docker use cases. 4 min
  6. 6 Summary - What is Docker Combine Docker's core concepts to write a container definition. 5 min
2
Installation and first commands
6 lessons · 25 min
  1. 1 Installing Docker Learn to install Docker Engine on Linux, macOS and Windows. 4 min
  2. 2 docker version Learn to verify installation with docker version. 4 min
  3. 3 docker info Learn to get system status with docker info. 4 min
  4. 4 The hello-world container Learn to test the install by running the first container. 4 min
  5. 5 Docker Desktop Learn the features and use of Docker Desktop. 4 min
  6. 6 Summary - Installation Combine install commands to run a system check. 5 min
3
First container
6 lessons · 25 min
  1. 1 docker run basics Learn the basic use of the docker run command. 4 min
  2. 2 Running in the background Learn to run containers in the background with -d. 4 min
  3. 3 docker ps Learn to list running containers with docker ps. 4 min
  4. 4 docker stop and rm Learn to stop and remove containers. 4 min
  5. 5 docker logs Learn to view container output with docker logs. 4 min
  6. 6 Summary - First container Combine run, ps, stop and logs to manage a container. 5 min
4
Dockerfile basics
6 lessons · 25 min
  1. 1 What is a Dockerfile? Learn that a Dockerfile is a recipe for an image. 4 min
  2. 2 The FROM instruction Learn to specify a base image with FROM. 4 min
  3. 3 The RUN instruction Learn to run commands at build time with RUN. 4 min
  4. 4 COPY and ADD Learn to copy files into an image with COPY. 4 min
  5. 5 CMD and ENTRYPOINT Learn to set the container start command with CMD. 4 min
  6. 6 Summary - Dockerfile Combine FROM, RUN, COPY and CMD to write a Dockerfile. 5 min
5
Build and images
6 lessons · 25 min
  1. 1 docker build Learn to build an image from a Dockerfile with docker build. 4 min
  2. 2 Tagging images Learn to tag images with the -t flag. 4 min
  3. 3 Build context Learn what build context is and how it is used. 4 min
  4. 4 Layers and cache Learn about image layers and build cache. 4 min
  5. 5 .dockerignore Learn to filter build context with .dockerignore. 4 min
  6. 6 Summary - Build Combine build, tag and .dockerignore to create an image. 5 min
6
docker run options
6 lessons · 25 min
  1. 1 Interactive mode Learn the interactive terminal with -it flags. 4 min
  2. 2 Naming containers Learn to name a container with --name. 4 min
  3. 3 Restart policy Learn container restart policy with --restart. 4 min
  4. 4 Working directory Learn to set the working directory with -w. 4 min
  5. 5 Switching users Learn to switch the container user with -u. 4 min
  6. 6 Summary - docker run Combine various run flags to run an interactive container. 5 min
7
Image management
6 lessons · 25 min
  1. 1 docker images Learn to list local images with docker images. 4 min
  2. 2 docker rmi Learn to remove images with docker rmi. 4 min
  3. 3 docker pull Learn to pull images from a registry with docker pull. 4 min
  4. 4 docker push Learn to push images to a registry with docker push. 4 min
  5. 5 docker tag Learn to give an image a new tag with docker tag. 4 min
  6. 6 Summary - Image management Combine pull, tag, push and rmi to manage the image lifecycle. 5 min
8
Port mapping
6 lessons · 25 min
  1. 1 The port concept Learn the relationship between host and container ports. 4 min
  2. 2 The -p flag Learn port mapping with the -p flag. 4 min
  3. 3 Multiple ports Learn to map multiple ports. 4 min
  4. 4 Random ports Learn to assign random ports with -P. 4 min
  5. 5 IP binding Learn to bind a port to a specific IP. 4 min
  6. 6 Summary - Port mapping Combine port mapping options to publish a web server. 5 min
9
Volumes and data
6 lessons · 25 min
  1. 1 Data persistence Learn to keep data even after a container is removed. 4 min
  2. 2 Named volumes Learn to create named volumes with docker volume create. 4 min
  3. 3 The -v flag Learn to mount volumes with the -v flag. 4 min
  4. 4 Bind mounts Learn to mount host directories with bind mounts. 4 min
  5. 5 Volume management Learn to manage volumes with docker volume ls and rm. 4 min
  6. 6 Summary - Volumes Combine create, mount and remove to set up persistent data. 5 min
10
Environment variables
6 lessons · 25 min
  1. 1 The -e flag Learn to pass environment variables with -e. 4 min
  2. 2 The ENV instruction Learn to define variables in a Dockerfile with ENV. 4 min
  3. 3 The ARG instruction Learn build-time variables with ARG. 4 min
  4. 4 env-file Learn to load variables from a file with --env-file. 4 min
  5. 5 The WORKDIR instruction Learn to set the container working directory with WORKDIR. 4 min
  6. 6 Summary - Environment Combine ENV, ARG and -e to write a configurable image. 5 min
11
Project: docker-composeProject
5 lessons · 21 min
  1. 1 Compose design Design the structure of a docker-compose.yml file. 4 min
  2. 2 Service definition Add a web service to the compose file. 4 min
  3. 3 Database service Add a database service to the compose file. 4 min
  4. 4 Volume and network Add volume and network definitions to the compose file. 4 min
  5. 5 Putting it together - compose Combine all services and run with compose up. 5 min
12
Docker Hub and registry
6 lessons · 25 min
  1. 1 What is Docker Hub? Learn that Docker Hub is a public registry. 4 min
  2. 2 docker login Learn to log in to a registry with docker login. 4 min
  3. 3 Searching images Learn to search images with docker search. 4 min
  4. 4 Official images Learn about official images and their security. 4 min
  5. 5 Private registry Learn to run your own private registry. 4 min
  6. 6 Summary - Registry Combine login, search and pull to share images. 5 min
13
Network basics
6 lessons · 25 min
  1. 1 Network drivers Learn bridge, host and none network drivers. 4 min
  2. 2 docker network ls Learn to list networks with docker network ls. 4 min
  3. 3 Bridge network Learn to create a custom bridge network. 4 min
  4. 4 Container connectivity Learn how containers on the same network communicate. 4 min
  5. 5 Publishing ports Learn to publish ports on a network. 4 min
  6. 6 Summary - Network Combine create, connect and publish to set up multi-container. 5 min
14
Beginner finalFinal
5 lessons · 26 min
  1. 1 Challenge - Dockerfile Write a Dockerfile for a web application. 5 min
  2. 2 Challenge - Build and run Build an image and run the container on a specific port. 5 min
  3. 3 Challenge - Volume Run a database with a volume for persistent data. 5 min
  4. 4 Challenge - Compose Combine web and database with compose. 5 min
  5. 5 Challenge - Beginner project Set up a project that combines all beginner concepts. 6 min

Learn Kubernetes fundamentals: cluster, kubectl, Pod, Deployment, Service, ConfigMap, Secret and Namespace.

1
What is Kubernetes?
6 lessons · 25 min
  1. 1 What is Kubernetes? Learn that Kubernetes is a container orchestration platform. 4 min
  2. 2 Why Kubernetes? Learn the advantages Kubernetes provides. 4 min
  3. 3 Cluster architecture Learn the architecture of control plane and nodes. 4 min
  4. 4 Control plane Learn the control plane components. 4 min
  5. 5 Worker node Learn kubelet and kube-proxy on worker nodes. 4 min
  6. 6 Summary - What is Kubernetes Combine cluster components to write an architecture description. 5 min
2
Minikube
6 lessons · 25 min
  1. 1 What is Minikube? Learn that Minikube is a local Kubernetes cluster. 4 min
  2. 2 Installing Minikube Learn to install and start Minikube. 4 min
  3. 3 minikube start Learn to start the cluster with minikube start. 4 min
  4. 4 minikube status Learn the cluster status with minikube status. 4 min
  5. 5 minikube dashboard Learn to open the web UI with minikube dashboard. 4 min
  6. 6 Summary - Minikube Combine start, status and dashboard to set up a cluster. 5 min
3
kubectl basics
6 lessons · 25 min
  1. 1 What is kubectl? Learn that kubectl is the Kubernetes CLI. 4 min
  2. 2 kubectl get Learn to list resources with kubectl get. 4 min
  3. 3 kubectl describe Learn resource details with kubectl describe. 4 min
  4. 4 kubectl apply Learn to apply a YAML file with kubectl apply. 4 min
  5. 5 kubectl delete Learn to delete resources with kubectl delete. 4 min
  6. 6 Summary - kubectl Combine get, describe, apply and delete to manage resources. 5 min
4
Pod
6 lessons · 25 min
  1. 1 What is a Pod? Learn that a Pod is the smallest Kubernetes unit. 4 min
  2. 2 Pod YAML Learn the YAML structure for a Pod definition. 4 min
  3. 3 Creating a Pod Learn to create a Pod with kubectl apply. 4 min
  4. 4 Pod status Learn Pod status and phases. 4 min
  5. 5 Multi-container Pod Learn to run multiple containers in a Pod. 4 min
  6. 6 Summary - Pod Combine YAML and apply to write and apply a Pod definition. 5 min
5
Deployment
6 lessons · 25 min
  1. 1 What is a Deployment? Learn that a Deployment manages Pods. 4 min
  2. 2 Deployment YAML Learn the Deployment YAML structure. 4 min
  3. 3 Replica count Learn the Pod replica count with the replicas field. 4 min
  4. 4 Rolling update Learn Deployment image updates. 4 min
  5. 5 Rollback Learn to undo with kubectl rollout undo. 4 min
  6. 6 Summary - Deployment Combine YAML, replicas and rollout to manage a Deployment. 5 min
6
ReplicaSet
6 lessons · 25 min
  1. 1 What is a ReplicaSet? Learn that a ReplicaSet ensures Pod replicas. 4 min
  2. 2 ReplicaSet YAML Learn the ReplicaSet YAML structure. 4 min
  3. 3 ReplicaSet selector Learn to match Pods with ReplicaSet selector. 4 min
  4. 4 Scaling Learn to scale a ReplicaSet with kubectl scale. 4 min
  5. 5 Self-healing Learn that ReplicaSet recreates deleted Pods. 4 min
  6. 6 Summary - ReplicaSet Combine YAML, selector and scale to manage a ReplicaSet. 5 min
7
Service
6 lessons · 25 min
  1. 1 What is a Service? Learn that a Service provides network access to Pods. 4 min
  2. 2 ClusterIP Learn the ClusterIP service type. 4 min
  3. 3 NodePort Learn the NodePort service type. 4 min
  4. 4 LoadBalancer Learn the LoadBalancer service type. 4 min
  5. 5 Service selector Learn to select Pods with a Service selector. 4 min
  6. 6 Summary - Service Combine ClusterIP, NodePort and selector to write a Service. 5 min
8
ConfigMap
6 lessons · 25 min
  1. 1 What is a ConfigMap? Learn to separate configuration data with a ConfigMap. 4 min
  2. 2 ConfigMap YAML Learn the ConfigMap YAML structure. 4 min
  3. 3 Environment variable Learn to mount a ConfigMap as environment variables. 4 min
  4. 4 Mounting as a volume Learn to mount a ConfigMap as a volume. 4 min
  5. 5 kubectl create configmap Learn to create a ConfigMap with kubectl create configmap. 4 min
  6. 6 Summary - ConfigMap Combine YAML and volume mount to write a configurable Pod. 5 min
9
Secret
6 lessons · 25 min
  1. 1 What is a Secret? Learn to manage sensitive data with Secrets. 4 min
  2. 2 Secret types Learn Opaque and docker-registry Secret types. 4 min
  3. 3 Secret YAML Learn the Secret YAML structure. 4 min
  4. 4 Mounting a Secret Learn to mount a Secret as environment or volume. 4 min
  5. 5 kubectl create secret Learn to create a Secret with kubectl create secret. 4 min
  6. 6 Summary - Secret Combine YAML and mount to use sensitive data safely. 5 min
10
Namespace
6 lessons · 25 min
  1. 1 What is a Namespace? Learn to group resources with Namespaces. 4 min
  2. 2 kubectl get namespaces Learn to list Namespaces. 4 min
  3. 3 Creating a Namespace Learn to create a Namespace with kubectl create namespace. 4 min
  4. 4 The -n flag Learn to specify a Namespace with the -n flag. 4 min
  5. 5 Default Namespace Learn the default and kube-system Namespaces. 4 min
  6. 6 Summary - Namespace Combine create, list and -n to set up resource groups. 5 min
11
Labels and selectors
6 lessons · 25 min
  1. 1 What is a label? Learn to tag resources with labels. 4 min
  2. 2 Adding labels Learn to define labels in YAML. 4 min
  3. 3 Label selector Learn to select resources with label selectors. 4 min
  4. 4 kubectl get -l Learn to filter by label with the -l flag. 4 min
  5. 5 Equality and set selectors Learn equality and set-based selectors. 4 min
  6. 6 Summary - Labels Combine labels and selectors to group and filter resources. 5 min
12
Project: Multi-tier appProject
5 lessons · 21 min
  1. 1 Project design Design the Kubernetes structure for web and database. 4 min
  2. 2 Database Deployment Write a Deployment and Service for the database. 4 min
  3. 3 Web Deployment Write a Deployment for the web application. 4 min
  4. 4 ConfigMap and Secret Write a ConfigMap and Secret for app configuration. 4 min
  5. 5 Putting it together - multi-tier Apply all resources to deploy the app. 5 min
13
Troubleshooting
6 lessons · 25 min
  1. 1 kubectl logs Learn to view Pod logs with kubectl logs. 4 min
  2. 2 kubectl exec Learn to run commands inside a Pod with kubectl exec. 4 min
  3. 3 kubectl describe pod Learn to inspect Pod issues with describe. 4 min
  4. 4 CrashLoopBackOff Learn to identify the CrashLoopBackOff error. 4 min
  5. 5 Pending Pod Learn to inspect Pending Pods. 4 min
  6. 6 Summary - Troubleshooting Combine logs, exec and describe to solve a Pod issue. 5 min
14
Intermediate finalFinal
5 lessons · 26 min
  1. 1 Challenge - Pod YAML Write a Pod YAML with specific labels. 5 min
  2. 2 Challenge - Deployment Write a Deployment with three replicas. 5 min
  3. 3 Challenge - Service Write a NodePort Service and connect to Pods. 5 min
  4. 4 Challenge - ConfigMap Write a ConfigMap and mount it as env in a Pod. 5 min
  5. 5 Challenge - Intermediate project Set up a project combining Deployment, Service and ConfigMap. 6 min

Learn advanced Kubernetes: Ingress, Helm, StatefulSet, DaemonSet, Job, PV/PVC, HPA, RBAC, monitoring and logging.

1
Ingress
6 lessons · 25 min
  1. 1 What is Ingress? Learn that Ingress is an HTTP routing layer. 4 min
  2. 2 Ingress controller Learn what an Ingress controller is. 4 min
  3. 3 Ingress YAML Learn the Ingress resource YAML structure. 4 min
  4. 4 Host and path Learn host and path-based routing. 4 min
  5. 5 TLS termination Learn TLS termination on Ingress. 4 min
  6. 6 Summary - Ingress Combine host, path and TLS to write an Ingress. 5 min
2
Helm
6 lessons · 25 min
  1. 1 What is Helm? Learn that Helm is the Kubernetes package manager. 4 min
  2. 2 Chart structure Learn the Helm chart directory structure. 4 min
  3. 3 helm install Learn to install a chart with helm install. 4 min
  4. 4 values.yaml Learn chart configuration with values.yaml. 4 min
  5. 5 helm upgrade Learn to upgrade a release with helm upgrade. 4 min
  6. 6 Summary - Helm Combine install, values and upgrade to manage a chart. 5 min
3
StatefulSet
6 lessons · 25 min
  1. 1 What is a StatefulSet? Learn that a StatefulSet manages stateful applications. 4 min
  2. 2 StatefulSet YAML Learn the StatefulSet YAML structure. 4 min
  3. 3 Stable identity Learn the stable name and ordinal of Pods. 4 min
  4. 4 VolumeClaimTemplate Learn persistent storage with volumeClaimTemplates. 4 min
  5. 5 Ordered startup Learn ordered Pod startup and shutdown. 4 min
  6. 6 Summary - StatefulSet Combine YAML and volumeClaimTemplate to write a StatefulSet. 5 min
4
DaemonSet
6 lessons · 25 min
  1. 1 What is a DaemonSet? Learn that a DaemonSet runs a Pod on every node. 4 min
  2. 2 DaemonSet YAML Learn the DaemonSet YAML structure. 4 min
  3. 3 Node selector Learn to use nodeSelector in a DaemonSet. 4 min
  4. 4 DaemonSet use cases Learn DaemonSet use cases. 4 min
  5. 5 Updating a DaemonSet Learn the DaemonSet rolling update strategy. 4 min
  6. 6 Summary - DaemonSet Combine YAML and nodeSelector to write a DaemonSet. 5 min
5
Job and CronJob
6 lessons · 25 min
  1. 1 What is a Job? Learn that a Job runs tasks to completion. 4 min
  2. 2 Job YAML Learn the Job YAML structure. 4 min
  3. 3 completions and parallelism Learn Job completions and parallelism fields. 4 min
  4. 4 What is a CronJob? Learn scheduled tasks with a CronJob. 4 min
  5. 5 CronJob YAML Learn the CronJob YAML structure. 4 min
  6. 6 Summary - Job and CronJob Combine Job and CronJob YAML to write scheduled tasks. 5 min
6
PV and PVC
6 lessons · 25 min
  1. 1 What is a PersistentVolume? Learn that a PV is cluster-level storage. 4 min
  2. 2 PersistentVolumeClaim Learn storage requests with a PVC. 4 min
  3. 3 StorageClass Learn dynamic provisioning with a StorageClass. 4 min
  4. 4 Access modes Learn ReadWriteOnce, ReadOnlyMany and ReadWriteMany. 4 min
  5. 5 Mounting a PVC to a Pod Learn to mount a PVC as a volume in a Pod. 4 min
  6. 6 Summary - PV and PVC Combine PV, PVC and mount to set up persistent storage. 5 min
7
HPA - Autoscaling
6 lessons · 25 min
  1. 1 What is an HPA? Learn autoscaling with a HorizontalPodAutoscaler. 4 min
  2. 2 HPA YAML Learn the HPA YAML structure. 4 min
  3. 3 CPU threshold Learn to scale based on CPU percentage. 4 min
  4. 4 Min and max replicas Learn minReplicas and maxReplicas fields. 4 min
  5. 5 Metrics server Learn that the metrics server is required for HPA. 4 min
  6. 6 Summary - HPA Combine YAML, CPU threshold and limits to write an HPA. 5 min
8
RBAC
6 lessons · 25 min
  1. 1 What is RBAC? Learn the Role-Based Access Control concept. 4 min
  2. 2 Role and ClusterRole Learn the differences between Role and ClusterRole. 4 min
  3. 3 RoleBinding Learn to bind a Role with a RoleBinding. 4 min
  4. 4 ServiceAccount Learn Pod identity with a ServiceAccount. 4 min
  5. 5 Verbs and resources Learn RBAC verbs and resources. 4 min
  6. 6 Summary - RBAC Combine Role, Binding and ServiceAccount to write permissions. 5 min
9
Prometheus and Grafana
6 lessons · 25 min
  1. 1 What is Prometheus? Learn Prometheus as a metrics collection system. 4 min
  2. 2 ServiceMonitor Learn scrape targets with a ServiceMonitor. 4 min
  3. 3 What is Grafana? Learn visualization with Grafana. 4 min
  4. 4 PromQL basics Learn to query metrics with PromQL. 4 min
  5. 5 Alertmanager Learn alert management with Alertmanager. 4 min
  6. 6 Summary - Monitoring Combine Prometheus and Grafana to write a metrics query. 5 min
10
EFK logging
6 lessons · 25 min
  1. 1 Centralized logging Learn the centralized logging concept. 4 min
  2. 2 Fluentd Learn log collection with Fluentd. 4 min
  3. 3 Elasticsearch Learn log storage with Elasticsearch. 4 min
  4. 4 Kibana Learn log search with Kibana. 4 min
  5. 5 DaemonSet logging Learn to deploy Fluentd as a DaemonSet. 4 min
  6. 6 Summary - Logging Combine Fluentd, Elasticsearch and Kibana to write a logging pipeline. 5 min
11
Project: Production appProject
5 lessons · 21 min
  1. 1 Production design Design the architecture of a production app. 4 min
  2. 2 Database with StatefulSet Write the database as a StatefulSet. 4 min
  3. 3 Ingress and TLS Write TLS termination with Ingress. 4 min
  4. 4 Scaling with HPA Write autoscaling with an HPA. 4 min
  5. 5 Putting it together - production Apply all resources to deploy the production app. 5 min
12
Advanced finalFinal
5 lessons · 26 min
  1. 1 Challenge - Ingress Write an Ingress with path-based routing. 5 min
  2. 2 Challenge - StatefulSet Write a StatefulSet with a volumeClaimTemplate. 5 min
  3. 3 Challenge - CronJob Write a CronJob that runs daily. 5 min
  4. 4 Challenge - RBAC Write a ServiceAccount and a RoleBinding. 5 min
  5. 5 Challenge - Advanced project Set up a project combining the production app. 6 min

Learn expert Kubernetes: internals, CRD, operators, service mesh, multi-cluster, OPA and disaster recovery.

1
Kubernetes internals
6 lessons · 25 min
  1. 1 What is etcd? Learn that etcd stores cluster state. 4 min
  2. 2 kube-scheduler Learn that kube-scheduler assigns Pods to nodes. 4 min
  3. 3 controller-manager Learn the controllers of kube-controller-manager. 4 min
  4. 4 kube-apiserver Learn that kube-apiserver serves the cluster API. 4 min
  5. 5 Reconcile loop Learn the controller reconcile loop. 4 min
  6. 6 Summary - Internals Combine etcd, scheduler and controller to explain the architecture. 5 min
2
Custom Resource Definition
6 lessons · 25 min
  1. 1 What is a CRD? Learn to define custom resources with a CRD. 4 min
  2. 2 CRD YAML Learn the CRD YAML structure. 4 min
  3. 3 Custom resource Learn to create custom resources from a CRD. 4 min
  4. 4 Spec and status Learn CRD spec and status fields. 4 min
  5. 5 Validation Learn CRD validation rules. 4 min
  6. 6 Summary - CRD Combine YAML and validation to write a CRD. 5 min
3
Operator pattern
6 lessons · 25 min
  1. 1 What is an Operator? Learn that the Operator pattern encodes human knowledge. 4 min
  2. 2 Controller logic Learn the controller logic of an Operator. 4 min
  3. 3 Operator SDK Learn development with the Operator SDK. 4 min
  4. 4 Custom resource management Learn how an Operator manages custom resources. 4 min
  5. 5 Example operator Learn a simple operator scenario. 4 min
  6. 6 Summary - Operator Combine CRD and reconcile to describe an operator. 5 min
4
Service mesh - Istio
6 lessons · 25 min
  1. 1 What is a service mesh? Learn that a service mesh provides traffic management. 4 min
  2. 2 What is Istio? Learn that Istio is a service mesh implementation. 4 min
  3. 3 Envoy sidecar Learn the Envoy sidecar proxy. 4 min
  4. 4 Traffic management Learn traffic routing with Istio. 4 min
  5. 5 mTLS Learn mutual TLS with Istio. 4 min
  6. 6 Summary - Service mesh Combine sidecar and VirtualService to write a mesh rule. 5 min
5
Multi-cluster
6 lessons · 25 min
  1. 1 What is multi-cluster? Learn the concept of managing multiple clusters. 4 min
  2. 2 Cluster federation Learn cluster federation approaches. 4 min
  3. 3 Kubeconfig Learn to connect to multiple clusters with kubeconfig. 4 min
  4. 4 Cross-cluster service Learn cross-cluster service access. 4 min
  5. 5 Cluster registry Learn the cluster registry concept. 4 min
  6. 6 Summary - Multi-cluster Combine kubeconfig and cross-cluster service to switch contexts. 5 min
6
OPA and Gatekeeper
6 lessons · 25 min
  1. 1 What is OPA? Learn that Open Policy Agent is a policy engine. 4 min
  2. 2 The Rego language Learn the Rego policy language. 4 min
  3. 3 What is Gatekeeper? Learn that Gatekeeper is a Kubernetes admission webhook. 4 min
  4. 4 ConstraintTemplate Learn to define policies with a ConstraintTemplate. 4 min
  5. 5 Constraint Learn to enforce policies with a Constraint. 4 min
  6. 6 Summary - OPA Combine Rego and ConstraintTemplate to write a policy. 5 min
7
Disaster recovery
6 lessons · 25 min
  1. 1 Backup strategy Learn cluster backup strategies. 4 min
  2. 2 etcd backup Learn to take an etcd snapshot. 4 min
  3. 3 Velero Learn cluster backup with Velero. 4 min
  4. 4 Restore process Learn to restore with Velero. 4 min
  5. 5 RPO and RTO Learn recovery point and time objective concepts. 4 min
  6. 6 Summary - Disaster recovery Combine snapshot, Velero and RPO to write a recovery plan. 5 min
8
Expert finalFinal
5 lessons · 26 min
  1. 1 Challenge - CRD Write a CRD YAML for a custom resource. 5 min
  2. 2 Challenge - Operator Write a structure explaining operator reconcile logic. 5 min
  3. 3 Challenge - Istio Write traffic routing with a VirtualService. 5 min
  4. 4 Challenge - OPA Write a policy with Rego. 5 min
  5. 5 Challenge - Expert project Set up a project combining CRD, Operator and Istio. 6 min

Lessons are free, an account keeps your progress

You do not have to sign up. If you do, you continue where you left off and never lose your work.

  • Progress saved on every device
  • Earn XP and badges
  • Keep your daily streak
  • Get a certificate when you finish
create a free account

Frequently asked questions

Are the Docker & Kubernetes lessons free?

Yes. All 281 lessons of the Docker & Kubernetes course are free and you can start without an account.

Do I need any prior knowledge?

No. The beginner level starts from zero; a browser is all you need. If you already know the basics, start at a higher level.

How long does the course take?

Lessons take 2–8 minutes. The whole course is about 20 hours; with 15–20 minutes a day you can finish in a few months.

Do I get a certificate?

Yes. When you complete the course with a free account, a verifiable certificate is issued in your name.

Will I lose my progress without an account?

Without an account your progress is kept only in your current browser. When you create a free account it is moved to your account.

Next step Machine Learning

From ML fundamentals to deep learning. Regression, classification, neural networks, CNN, RNN and transformer models.