<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version

Docker for Programmers

Class Duration

14 hours of live training delivered over 2-4 days to accommodate your scheduling needs

Student Prerequisites

  • Basic programming and Linux command-line experience.
  • Prior experience with Docker and/or Containerization is not required.

Target Audience

Designed for software engineers, DevOps practitioners, SREs, and solution architects who build and operate containerized services. Teams standardizing development environments with DevContainers/Codespaces, modernizing legacy apps, or orchestrating multi-service stacks will benefit, as will technical managers and L&D partners assessing enterprise-wide enablement. The course suits organizations seeking faster, reproducible releases, simplified onboarding, and a clear path from local development to automated CI/CD and production operations using Docker.

Description

This live, hands-on course equips experienced engineers to use Docker to accelerate delivery of reliable, portable software. Participants learn container fundamentals and OCI standards, then build production-grade images with multi-stage Dockerfiles and disciplined tagging. You will run and network containers, persist state with volumes, and stand up database-backed apps. We progress to multi-service orchestration with Docker Compose and Docker Stack/Swarm, plus practical workflows with VS Code DevContainers and GitHub Codespaces. Finally, you will integrate Docker into CI/CD to build, push, and run images in automated pipelines, and understand where alternatives like Podman or Kubernetes fit. The result is a repeatable, developer-friendly platform for modernizing applications and reducing release friction.

Learning Outcomes

  • Explain containerization, Docker’s role, orchestration concepts, container registries, and OCI standards—and where Docker fits alongside Podman, Buildah, Skopeo, CRI-O, containerd, rkt, and Kubernetes.
  • Design and build efficient images using Dockerfiles, layers, multi-stage builds, tags, and caching aligned with best practices.
  • Manage the image lifecycle: search, pull, list, remove, tag, and publish images to registries for both development and production.
  • Run containers in detached and interactive modes; configure entrypoints, environment variables, ports, and executables.
  • Implement data persistence with bind mounts, named volumes, drivers, and plugins, including durable setups for databases.
  • Configure networking with bridge, host, overlay, macvlan, and none drivers; connect web applications to databases securely and reliably.
  • Orchestrate multi-service applications using Docker Compose and Docker Stack/Swarm, from build and deploy to service/task inspection and teardown.
  • Streamline developer workflows with VS Code DevContainers and GitHub Codespaces, and integrate Docker into CI/CD pipelines (GitHub Actions, GitLab CI/CD, Azure DevOps, Jenkins) to build, push, and run containers.

Training Materials

All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises. Students will need a free, personal GitHub account to access the courseware. Student will need permission to install Docker Desktop, Visual Studio Code, and Visual Studio Code Extensions on their computers.

Software Requirements

Students will need a free, personal GitHub account to access the courseware. Student will need permission to install Docker Desktop, Visual Studio Code, and Visual Studio Code Extensions on their computers.

Training Topics

Overview of Docker & Containerization
  • What is Docker?
  • What is Containerization?
  • What is Orchestration?
  • What is a Container Registry?
  • Docker for Production
  • Docker for Development
  • Docker and DevContainers
Development Environment
  • Docker Desktop
  • Docker Hub
  • Visual Studio Code and useful Extensions
  • Visual Studio DevContainers
  • GitHub Codespaces and DevContainers
Containerization
  • What is am Image and a Container?
  • Standard Unit of Software
  • Application Isolation
  • Underlying Technology
    • Namespaces
    • Control Groups
    • Union File Systems
  • Open Container Initiative
    • Image Format
    • Runtime Specification
Docker Image and Container
  • Managing Images
  • Listing and Removing Images
  • Searching for Images
  • Image Tags and Versions
  • Pulling Images
  • Image Caching
  • Run Hello World Container
Create Image with Dockerfile
  • Dockerfile
  • Build Image
  • Tag Image
  • Publish Image
  • Run Hello World Nginx Container
Dockerfile
  • Layers
  • Organize Layers
  • Base Image
  • Work Directory
  • Copy Files
  • Run Commands
  • Environment Variables
  • Ports
  • Container Executable
  • Multi-Stage builds with Dockerfile
  • Best Practices
Run Container
  • Run a Container in Detached Mode
  • Run a Container with Interactive Mode
  • Port Mapping
  • Volume Mapping
  • Run a Database Container
  • Run a Database Client Container in Interactive Mode
Docker Volumes
  • Data Persistence
  • Bind Mounts
  • Named Volumes
  • Volume Drivers
  • Volume Plugins
  • Configure a Persistent Volume for a Database Container
Docker Networking
  • Container Networking
  • Bridge Network
  • Host Network
  • Overlay Network
  • Macvlan Network
  • None Network
  • Network Drivers
  • Access a Database Container from a Client Container
  • Connecting a Web App Container to a Database Container
Docker Compose
  • What is Docker Compose?
  • YAML File Format
  • Compose File
  • Services
  • Network and Volume Configuration
  • Environment Variables
  • Compose Build
  • Compose Up and Down
  • Compose Daemon Flag
  • Orchestrate a Web App with Database using Docker Compose
Docker Stack
  • What is Docker Stack?
  • Docker Swarm
  • Docker Stack File
  • Deploy a Stack
  • List Tasks and Service in a Stack
  • List Stacks
  • Remove a Stack
  • Orchestrate a Web App with Database using Docker Stack
Docker and CI/CD
  • Continuous Integration, Delivery & Deployment
  • Docker in CI/CD Pipeline (choose one or two)
    • GitHub Actions
    • GitLab CI/CD
    • Azure DevOps
    • Jenkins
  • Build Images and Images to a Registry
  • Run a Container in a Pipeline
Alternatives to Docker Overview
  • Podman
  • Buildah
  • Skopeo
  • CRI-O
  • Containerd
  • rkt
  • Kubernetes
<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version