Updated June 2026Mastering Docker and Kubernetes with Azure
Class Duration
35 hours of live training delivered over 5 days.
Student Prerequisites
- Familiarity with basic Linux commands
- No prior Docker or Kubernetes experience required
Target Audience
This course is designed for developers and administrators who would like to leverage the advantages of containers by learning the fundamentals of Docker and Kubernetes for deploying applications both on-premises and in the cloud with Azure.
Description
Docker has emerged as one of the most popular software platforms for managing applications. It enables applications to be developed, shipped, and run in a standardized, lightweight, and portable fashion through the use of containers. Kubernetes has become the de facto standard for managing containerized applications by automating the processes for deploying, scaling, and managing containers.
This course provides an introduction to the fundamentals of Docker and Kubernetes for developers and administrators wishing to deploy applications both on-premises and in the cloud using Azure services. The course begins with Docker fundamentals - architecture, containers, images, storage, and networking - then moves through Kubernetes deployments, services, and Ingress, and multi-container applications with Docker Compose. It concludes with the full range of Azure container services, from the Azure Container Registry (ACR) and Azure Container Instances (ACI) through Azure Container Apps to Azure Kubernetes Service (AKS), and finishes with packaging and managing Kubernetes applications using Helm.
Learning Outcomes
- Understand the features, design goals, and architecture of Docker
- Install the tools necessary to work with Docker
- Use the Docker command line interface (CLI)
- Browse, create, build, and run images
- Understand the features, design goals, and architecture of Kubernetes
- Install the tools necessary to work with Kubernetes
- Create and manage resources using Kubernetes commands
- Specify and create resources using YAML files
- Deploy applications to Kubernetes and scale, update, and roll back deployments
- Create services to communicate with Kubernetes applications
- Expose services using Ingress
- Deploy multi-container applications with Docker Compose
- Convert Docker Compose applications to Kubernetes
- Build and deploy a Node.js application to Docker and Kubernetes
- Store and share images using the Azure Container Registry (ACR)
- Create a simple app deployment with an Azure Container Instance (ACI)
- Deploy a fully managed Kubernetes-style application with Azure Container Apps
- Leverage the full set of deployment features with Azure Kubernetes Service (AKS)
- Install and manage Kubernetes applications using Helm
Training Materials
Comprehensive courseware is distributed online at the start of class. All students receive a downloadable MP4 recording of the training.
Software Requirements
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Azure subscription with permission to create resources (ACR, ACI, Azure Container Apps, AKS)
- SSH client for connecting to an Ubuntu virtual machine
- Visual Studio Code with the Container Tools extension
- Docker Engine, kubectl, Minikube, and Helm (installation is covered in class)
Training Topics
Introduction to Docker
- What is Docker?
- Containers: introduction and benefits
- Docker architecture
- Client (docker CLI)
- Daemon and client-daemon communication
- Images, registries, and the Docker Engine
- Installation
- Creating and connecting to an Ubuntu virtual machine
- Testing and updating the installation
- Configuring Visual Studio Code for Docker
Containers and Images
- Container operations
- Listing containers
- Start, stop, pause, and unpause
- Removing containers
- Images
- Docker Hub
- Dockerfiles
- Creating and running images
- Removing images
Docker Storage and Networking
- Volume mounts
- Bind mounts
- tmpfs mounts
- Bridge networks: default and user-defined
- Host networks
Introduction to Kubernetes
- What is Kubernetes?
- Architecture overview: clusters, nodes, Pods, and the control plane
- Tools, installation, and basic commands
- Creating a simple "Hello World" deployment
Kubernetes Deployments
- Architecture details
- Pods and nodes
- Objects and resources
- Workloads and ReplicaSets
- Deployments
- Creating from the command line
- Creating from a YAML file
- Updating and rolling back
- Scaling
- Pausing and resuming
Kubernetes Networking: Services
- The Kubernetes networking model
- Selectors, labels, and endpoints
- Service types: ClusterIP, NodePort, LoadBalancer, and ExternalName
- Creating services from the CLI and from YAML
- Exposing services within the cluster, externally, and with local port forwarding
Kubernetes Networking: Ingress
- Ingress vs. NodePort and LoadBalancer
- Ingress controllers: the NGINX Ingress controller
- Defining an Ingress resource in YAML
- DNS
- Usage patterns: fanout and name-based virtual hosting
Multi-Container Applications with Docker Compose
- What is Docker Compose?
- The Compose file and the Compose Specification
- Defining services, networks, and volumes
- Merging multiple Compose files
- docker compose commands: create, start, list, stop, and remove
- Converting Compose applications to Kubernetes with Kompose
Azure Container Registry and Container Instances
- Azure Container Registry (ACR)
- Introduction and creation
- Logging in
- Pushing and viewing images
- Azure Container Instances (ACI)
- Introduction
- Creation and configuration
- Testing the deployment
Azure Container Apps
- Creation and configuration
- Container Apps environments
- Ingress
- Testing the deployment
Azure Kubernetes Service (AKS)
- What is AKS?
- Creating an AKS cluster
- Managing an application in AKS: running, scaling, and updating
Helm
- What is Helm?
- Installation and architecture
- Charts
- Searching Artifact Hub and chart repositories
- Adding and installing charts
- Setting default values
- Releases: create, upgrade, rollback, and uninstall