O'Reilly logo
live online training icon Live Online training

Introduction to Docker Compose

How to deploy and debug multi-container services

Sean Kane

Containers are often advertised as solving a multitude of problems relating to delivering and maintaining highly available software in the always-on, global environment that most organizations must serve today, but how can they actually help you? What problems are you actually experiencing that can be solved with containers and its closely related technologies?

After becoming comfortable with container basics, most organizations will want to start putting them to use in their development workflow, and even the most traditional monolithic application relies on at least one additional service, like a database. So, how can developers quickly, and reliably spin up a set of fully-configured containerized services on their local system?

This class will introduce you to a tool called Docker Compose and teach you everything that you need to know about how to write a shareable docker-compose.yaml file that defines a set of related services which can be repeatably launched and torn down as needed.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to use Docker Compose to significantly simplify your ability to repeatedly launch complex multicontainer service clusters in local development environments

And you’ll be able to:

  • Craft a working docker-compose.yaml file to enable repeatable deployments of complex inter-dependent services.
  • Launch Docker compositions that can easily stand up complex inter-dependent services for local testing.
  • Control, modify, and debug individual services

This training course is for you because...

  • You need to understand how to simplify local development for engineers working with complex systems.


  • Basic comfort with the Unix command line is helpful.
  • Comfort working with Docker images and containers.

Recommended preparation:

  • A modern computer and OS
    • Recent Linux, OS X, or Windows 10
    • root/admin rights
    • CPU Virtualization extensions MUST be enabled in your BIOS/EFI
    • Reliable and fast internet connectivity
  • Docker Desktop or Engine (Community Edition)
  • A graphical web browser
  • A text editor
  • A software package manager
  • Git client
  • General comfort with the command line will be helpful.
  • Optionally, have the following command-line tools installed: tar, wget, curl, jq, and an SSH client
  • Introduction to Docker images (live online training course with Sean Kane)
  • Introduction to Docker containers (live online training course with Sean Kane)

Recommended follow-up:

About your instructor

  • Sean P. Kane is currently Lead Site Reliability Engineer at New Relic. He has had a long career in production operations, with many diverse roles across a broad range of industries. In addition to spending his spare time writing, teaching, and speaking about modern production operations, Sean is an avid traveler, hiker, and camper. He lives in the US Pacific Northwest with his wife, children, and dog(s).


The timeframes are only estimates and may vary according to how the class is progressing

Introduction (15 minutes)

  • Presentation: Docker Terminology

Creating and Launching (45 minutes)

  • Exercise: Test Docker
  • Presentation: Comparing Scripts with Compose
  • Exercise: Launching a Composition

Configuring and Exploring (60 minutes)

  • Exercise: Configuring the Service
  • Presentation: Understanding the Components
  • Exercise: Compose Commands

Advanced Considerations (60 minutes)

  • Exercise: Managing Local Secrets
  • Presentation: Deeper Dive into the docker-compose.yaml file
  • Exercise: Write and launch a new docker-compose.yaml
  • Presentation: Advanced Compose Features
  • Review