Course Outline
Module 1: Introduction to Containerization
Learning Objectives: Understand the origins and the need for
containerization in modern applications. Learn how Docker emerged as
one of the best container platforms in the industry and about the
technology behind it.
Topics
Containerization
History of Containers
Namespaces and Cgroups
Containers vs Virtual Machines
Types of Containers
Introduction to Docker
Docker Architecture
Container Lifecycle
Docker CE vs Docker EE
Module 2: The Docker Engine
Learning Objectives: Set up the Docker Engine on Google Compute
Engine Instance and perform various operations on Containers.
Configure logging drivers, bind container ports, and write restart policy
for containers.
Topics
Docker Engine
Configuring Logging Drivers
Docker Terminology
Port Binding
Detached vs Foreground Mode
Docker CLI
Docker Exec
Restart Policy
Hands-On:
Setting up Docker Engine
Upgrading Docker Engine
Setting up logging drivers in Docker
Port Binding
Starting Containers in different modes
Docker CLI Commands
Docker Exec Commands
Restart Policy in Docker
Removing Containers
Module 3: Image Management and Registry
Learning Objectives: Learn how to write a Dockerfile and create
custom images by building the Dockerfile. Create and manage remote
registry to store your custom images.
Topics:
Dockerfile
Dockerfile Instructions
Build Context
Docker Image
Docker Registry
Hands-On:
Write a Dockerfile to create an Image
Docker Image Tags
Setting up Docker Hub
Configuring Local Registry
Removing Images from the Registry
Module 4: Storage in Docker
Learning Objectives: Create persistent storage solutions for stateful
containerized applications. Utilize different methods for storing
container data and perform image cleanup for optimization
Topics:
Docker Storage
Types of Persistent Storage
Volumes
Bind Mounts
tmpfs Mount
Storage Drivers
Device Mapper
Docker Clean Up
Hands-On:
Deploy Docker Volumes
Deploy Bind Mounts
Use tmpfs mounts
Configure Device Mapper
Docker Clean Up
Module 5: Orchestration in Docker
Learning Objectives: Create and run multi-container applications using
Docker Compose and manage clusters of Docker nodes using Docker
Swarm.
Topics:
Docker Compose
Docker Swarm
Docker Service
Service Placement
Rolling Update and Rollback
Docker Stack
Hands-On:
Deploy a Multi-container Application using Compose
Running Docker in Swarm mode
Deploying a Service in Swarm
Scale Services
Service Placement
Rolling Updates and Rollbacks
Docker Stack
Module 6: Networking and Security
Learning Objectives: Configure Docker network using various built-in
network drivers such as a Network Bridge and Overlay Network. Secure
your environment by authenticating images using Docker Content Trust.
Topics:
Docker Networking
Network Drivers
Bridge Network
Overlay Network
Host and Macvlan
Docker Security
Docker Content Trust
Securing the Docker Daemon
Hands-On:
Create and use a User-defined Bridge Network
Create and use a Overlay Network
Use Host and Macvlan Network
Configure Docker to use External DNS
Signing images using DCT
Securing the Docker Daemon
Module 7: Docker EE and Monitoring
Learning Objectives: Install and configure Docker Enterprise Edition and
learn how to use the Universal Control Plane and the Docker Trusted
Registry in your enterprise cluster.
Topics:
Docker Enterprise
Universal Control Plane (UCP)
UCP Architecture
Access Control in UCP
Docker Trusted Registry (DTR)
Monitoring using Prometheus
Hands-On:
Set up Docker Enterprise Edition
Install UCP
Access Control using UCP
Installing DTR
Using DTR for Image Storage
Monitoring using Prometheus
Module 8: Docker with Kubernetes
Learning Objectives: Learn about container orchestration engine
Kubernetes and its various services to help orchestrate Docker
containers.
Topics:
Kubernetes Core Concepts
Kubernetes Common Commands
Pods
Deployments
Labels, Selectors and Annotations
Services
Persistent Volumes and Persistent Volume Claims
Storage Classes
Hands-On:
Setup Kubernetes cluster using GKE
Kubectl Common Commands
Deploy a Pod
Use a Deployment for pod management
Deploy different Services
Use Persistent Storage in Kubernetes
Use Storage Classes