0: Introduction

Introduction to the course

•Course Overview

1: History and Motivation

Examine the evolution of virtualization technologies from bare metal, virtual machines, and containers and the tradeoffs between them.

•Motivation for Containers

•What is a Container?

•History of Virtualization

2: Technology Overview

Explores the three core Linux features that enable containers to function (cgroups, namespaces, and union filesystems), as well as the architecture of the Docker components.

•Linux Building Blocks

•Docker Application Architecture

3: Installation and Set Up

Install and configure Docker Desktop

•Installation and Set Up

•Running Your First Containers

4: Using 3rd Party Container Images

Use publicly available container images in your developer workflows and learn how about container data persistence.

•Persisting Data with Containers

•Using 3rd Party Containers

5: Example Web Application

Building out a realistic microservice application to containerize.

•Application Overview

6: Building Container Images

Write and optimize Dockerfiles and build container images for the components of the example web app.

•Docker Build Overview

•NodeJS API

•Golang API

•React Client

•Writing Good Dockerfiles

•Choosing a Base Image

•Additional Dockerfile Features

7: Container Registries

Use container registries such as Dockerhub to share and distribute container images.

•Container Registry Overview

8: Running Containers

Use Docker and Docker Compose to run the containerized application from Module 5.

•Docker Run Options

•Sample App Docker Run

•Sample App Docker Compose

9: Container Security

Learn best practices for container image and container runtime security.

•Container Security

10: Interacting with Docker Objects

Explore how to use Docker to interact with containers, container images, volumes, and networks.

•Images

•Containers

•Volumes

•Networks

11: Development Workflow

Add tooling and configuration to enable improved developer experience when working with containers.

•Developer Experience Wishlist

•Hot Reloading

•Debuggers

•Tests

•Continuous Integration (GitHub Actions)

•Ephemeral Environments

12: Deploying Containers

Deploy containerized applications to production using a variety of approaches.

•Deployment Considerations

•Deploying with Docker Swarm

13: Course Wrap Up

Final words about the course.

•Course Wrap Up