Course outline for Docker and Microservices

TechnologyDocker and MicroservicesDuration* 2-5 days LevelPrerequisites listed

Pre-requisites

  • Participants are expected to be familiar with basic Linux

Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 4GB of free RAM, 20GB of free disk space and full network connectivity

Software configuration

  • Ubuntu 20.04/22.04 Desktop Edition (sudo/root access required)
  • Chrome browser

How we train

Online training for Docker and Microservices

  • Instructor-led live cohorts
  • Self-paced learning with expert coaches
  • 24x7 cloud labs with end-to-end examples

All sessions are 100% hands-on. Labs and activities are derived from real-world work our engineers deliver.

Classroom training

Available for corporate teams in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR
  • Pune

Note: Classroom training is for corporate clients only.

Self-paced hands-on sessions are delivered via VirtualCoach.

Detailed Course Outline

Hands-on

Introduction

  • Installation
  • Hello World - Running a simple BASH shell

Docker Images

  • What is an image?
  • Finding images
  • Listing images
  • Pulling images
  • Removing images

Docker Containers

  • Introduction to containers
  • Difference from images
  • Running a container
  • Listing the running containers
  • Listing all containers
  • Stopping/Starting containers
  • Removing containers
  • Creating your own images
  • Understanding container state
  • Copying to and from containers
  • Running processes in existing containers
  • Restricting access to process, memory, disk and network
  • Getting runtime statistics

Dockerfiles

  • Building images from Dockerfiles
  • Understanding the Dockerfile format
  • Understanding union/overlay filesystems
  • Best practices in building Dockerfiles
  • A few case studies
  • Dockerizing a Spring Boot application
  • Multi-stage Docker builds
  • Building images from "scratch"

Docker Daemon

  • Binding the daemon to a different host/port
  • Interacting remotely with the daemon

Networking

  • The docker0 interface
  • Understanding bridge, overlay, host and null networks
  • Creating custom networks
  • Communication between containers via container names
  • Binding container ports to the host
  • Communicating across nodes
  • Service discovery and problems with Docker networks

Managing data in Containers

  • Working with data in containers
  • Docker volumes
  • Mounting files and directories
  • Backup, Restore and Migrate volumes
  • Case study - Mounting the MySQL data directory
  • Challenges of migrating volumes across nodes

Other Docker Projects

  • Docker Compose
  • Docker Swarm
  • Docker Machine
  • Comparison to Kubernetes
  • Comparison to Amazon Elastic Container Service and Fargate

Understanding the evolution of containers

  • cgroups and namespaces
  • chrooting
  • LXC
  • The problem that Docker solved
  • Standardization efforts around container runtimes
  • Security issues with containers
  • Birth of alternative container runtimes
  • Firecracker, Kata Containers, gVisor, Unikernels and the like

Microservices Architecture in Depth

  • Comparing Microservices to Monolithic architectures
  • Pros and cons of microservices architecture
  • Complexities of microservice architectures
  • 12 factor application development
  • Common pitfalls when migrating from Monolith to Microservices

Operational Readiness

  • Handling scale with microservices architecture
  • Handling failures and performing failovers in microservices architecture
  • Logging, tracing and monitoring in microservices architecture
  • Testing for operational readiness

Microservices architectural patterns (concepts)

  • Challenges of building and maintaining microservices applications
  • Service discovery
  • Circuit breaker
  • Routing and proxies
  • Load balancing – internal and external
  • Ingress controllers
  • API gateway