O'Reilly logo
live online training icon Live Online training

Introduction to Docker images

How to create fast and scalable containers

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?

The first thing to understand in this learning journey, is how one can use Docker images to easily define, build, and package your software in a manner that makes it easy to test, deploy, scale, and update, all without worrying as much about the other software that is running on a host.

This class will teach you everything that you need to know about Docker images and how to use them to create fast and scalable containers. You will learn how to build, package, and store your software utilizing Docker images, while also being exposed to lots of good habits to help you along the way.

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

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

  • Understanding how the Dockerfile works.
  • How to build images and optimize them for both size and speed.
  • How to use Docker Hub to store and retrieve public Docker images.
  • How to set up your own private registry to store and retrieve private Docker images.
  • How to debug a broken build.
  • How to use multi-stage builds to build the smallest containers possible.

And you’ll be able to:

  • Build optimized docker images
  • Troubleshoot build problems
  • Work with Docker image registries

This training course is for you because...

  • You need to understand how to package software for Docker.

Prerequisites

  • Basic comfort with the Unix command line is helpful.

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

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).

Schedule

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

Introduction (15 minutes)

  • Presentation: Docker Terminology

Building Images (45 minutes)

  • Exercise: Testing the Docker Setup
  • Presentation: Exploring the Dockerfile
  • Exercise: Registering with Docker Hub
  • Exercise: Building your first image
  • BREAK

Advanced Building Techniques I (60 minutes)

  • Presentation: Keeping Images Small
  • Exercise: Debugging Docker Images
  • Presentation: Multi-stage Images
  • BREAK

Advanced Building Techniques II (60 minutes)

  • Exercise: Smart Image Layering
  • Exercise: Dockerfile Ordering
  • Exercise: Creating and using a private registry
  • Review