O'Reilly logo
live online training icon Live Online training

Docker: Up and Running

Sean Kane

Join expert Sean P. Kane for a hands-on, in-depth introduction to Docker. You’ll bypass the hype and get straight to what Docker is, how it works, and how you can use it to simplify almost every step along your software delivery pipeline and production operations.

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

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

  • What Docker is—and isn’t
  • How Docker can revolutionize the way you develop, test, deliver, and run software
  • How Docker simplifies many traditional aspects of software delivery, including dependency management, resource management, packaging, and more
  • How to use Docker, from installing and building a Docker image, through launching a Docker container (and troubleshooting it)

This training course is for you because...

  • You have heard all the talk about containers and Docker and would like to get a first-hand understanding of how they work
  • You’re a software engineer who wants to take advantage of the efficiencies of containerization to streamline your software delivery pipeline and be more productive in your work
  • You’re an operations engineer who wants to use Docker to simplify server setup and standardize the way applications are delivered and managed across your environments
  • You’re a team leader who wants to see how Docker can be used by your organization and team to improve your DevOps efforts

Prerequisites

Before class, please make sure you take time to complete the required course setup.

Important Pre-Class Docker Training Setup: https://gist.github.com/spkane/98ac0c87a019f9305c831966e4d5f0b8

About your instructor

  • Sean P. Kane, coauthor of Docker: Up and Running with Karl Matthias, is currently a Lead Site Reliability Engineer for the Container Fabric team at New Relic. He has had a long career in production operations, with many diverse roles, in a broad range of industries. He has spoken about subjects like alerting fatigue and hardware automation at various meet-ups and technical conferences, including Velocity.

Schedule

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

Day One

Overview and introduction (45 minutes)

  • Take a look at this history of Linux Containers and Docker and what they are
  • Become familiar with Docker machine
  • Launch a Docker-enabled VM and explore the basic functionality of Docker-machine

Images (35 minutes)

  • Learn about the makeup of a Dockerfile
  • Download a git repo for class
  • Break and Q&A
  • Discuss Docker Image Registries
  • Create a Docker Hub login and their first repo
  • Build your first Docker image and push it to the registry

Containers (45 minutes)

  • Configuring containers with environment variables
  • Build and launch containers and verify that the containerized application works
  • Review and take-home assignment
  • Additional Q&A

Day Two

Containers (20 minutes)

  • Review solution for the take-home assignment (Q&A)
  • Students will re-launch and test a second container

Debugging (20 minutes)

  • Learn how logging works in containers
  • Learn how to gather statistics from containers
  • Discuss how to approach debugging a container
  • Launch an image and inspect it using a shell prompt
  • Connect to a live, running container and inspect it using a shell prompt

Resource Limits (40 minutes)

  • CPU usage for a container, limits and testing
  • Limiting memory availability for a container
  • Limiting storage resources for a container
  • Break and Q&A

Security (40 minutes)

  • Look at how UIDs are used by containers
  • Explore the power/danger of privileged containers
  • Use privileges to enable and disable commands like ping
  • Discuss Secure Computing Mode (seccomp)
  • Use seccomp profiles to enable ntpdate within a container
  • Final review and Q&A