Course curriculum

  • 1

    Getting Started

    • 1.1 The "Why" of Containers
    • 1.2 Setting Up Our Environment
    • 1.3 Running Our First Containers
    • 1.4 Background Containers
  • 2

    Building Container Images

    • 2.1 Images, Layers & Container Images
    • 2.2 Building Images Interactively
    • 2.3 Writing Our First Dockerfile
    • 2.4 Using CMD & Entrypoint
  • 3

    Optimizing Container Images

    • 3.1 Copying Files During The Build
    • 3.2.1 Exercise: Writing Docker Files
    • 3.2.2 Solution: Writing Docker Files
    • 3.3 Reducing Image Sizes
    • 3.4 Multi-Stage Builds
    • 3.5 Publishing Images to the Docker Hub
    • 3.6 Tips for Efficient Docker Files
    • 3.7 Dockerfile Examples
    • 3.8.1 Exercise: Writing Better Docker Files
    • 3.8.2 Solution: Writing Better Docker Files
  • 4

    Managing Containers

    • 4.1 Naming & Inspecting Containers
    • 4.2 Labels
    • 4.3 Getting Inside A Container
    • 4.4 Limiting Resources
  • 5

    Container Networking

    • 5.1 Container Networking Basics
    • 5.2 Container Networking Drivers
    • 5.3 The Container Network Model
    • 5.4 Service Discovery With Containers
    • 5.5 Ambasadors
  • 6

    Local Development With Compose

    • 6.1 Local Development Workflow With Compose
    • 6.2 Windows Containers
    • 6.3 Working With Volumes
    • 6.4 Compose For Development Stacks
    • 6.5.1 Exercise: Writing A Compose File
    • 6.5.2 Solution: Writing A Compose File
  • 7

    Preparing For Production

    • 7.1 Advanced Docker Files
    • 7.2 Application Configuration
    • 7.3 Logging
  • 8

    Orchestration

    • 8.1 Orchestration Overview