Updated June 2026Mastering Docker and Kubernetes with AWS
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 Amazon cloud. Teams on Microsoft's platform can take the Mastering Docker and Kubernetes with Azure variant instead.
Description
Docker has emerged as one of the most popular software platforms for managing applications, enabling them to be developed, shipped, and run in a standardized, lightweight, and portable fashion through the use of containers, while 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 Amazon Web 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 AWS container services, from the Amazon Elastic Container Registry (ECR) through the Amazon Elastic Container Service (ECS) with its AWS Fargate and Amazon EC2 compute options, to the Amazon Elastic Kubernetes Service (EKS), and finishes with packaging and managing Kubernetes applications using Helm.
Learning Outcomes
- Understand the features, design goals, and architecture of both Docker and Kubernetes, and install the tools necessary to work with each.
- Use the Docker command line interface (CLI) to browse, create, build, and run images and manage containers.
- Create and manage Kubernetes resources using commands and YAML files, and deploy applications you can scale, update, and roll back.
- Create services to communicate with Kubernetes applications and expose services using Ingress.
- Deploy multi-container applications with Docker Compose, convert Docker Compose applications to Kubernetes, and build and deploy a Node.js application to Docker and Kubernetes.
- Store and share images using the Amazon Elastic Container Registry (ECR).
- Create app deployments with the Amazon Elastic Container Service (ECS), understanding the available AWS container compute options (Amazon Elastic Compute Cloud (EC2) and AWS Fargate), and leverage the full set of Kubernetes deployment features with the Amazon Elastic Kubernetes Service (EKS).
- 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)
- AWS account with permission to create resources (ECR, ECS, EKS) and manage IAM credentials
- AWS CLI v2
- 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
Amazon Elastic Container Registry (ECR)
- Introduction
- Creating private and public repositories
- Logging in
- Installing the AWS CLI
- Identity and Access Management (IAM)
- Configuring credentials
- Pushing, pulling, and viewing images
Amazon Elastic Container Service (ECS)
- Introduction
- Creation and configuration
- Creating a cluster
- Creating a task definition
- Creating and viewing a service
- AWS Fargate vs. Amazon EC2
- Configuration and features
- Cost
- Usage scenarios
Amazon Elastic Kubernetes Service (EKS)
- What is EKS?
- Creating an EKS cluster
- Managing an application in EKS: configuring, 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