Docker 101 Series

Russ Fenn and Michael Irwin have put together a four-part Docker 101 series that is designed to help you get started with Docker. This series starts at a fairly high level, but provides several deep dive insights into the internals of containers and images. The first series was offered during the summer of 2018 and there are plans to rerun the series in the future.

Note - all demos seen in the presentations are outlined in the speaker notes. So, feel free to follow along and/or try them yourself!

Why Containers?

In this session, we start off by talking about the problem Docker is trying to solve. We then talk about images and containers and how they are different than VMs. After talking about the toolset, we end off by showing an end-to-end demo of building a simple container image, pushing it to Docker Hub, and then running the application on a brand new machine.

Using Docker Compose

In this session, we begin by discussing various methods to allow containers to communicate with each other. We look at the deprecated method of container linking and then move to container networking. We quickly realize there are a lot of flags and options to remember, but fortunately Docker Compose helps solve this problem! We convert our existing application to leverage Docker Compose and also add volume mounts. We end off by demoing how easy it is to start developing on a project using Docker Compose.

Creating Effective Images

In this ession, we start with a deep-dive into Docker images and their layers by dissecting a “mystery image”. We’ll learn what’s in the image, as well as what “secrets” might be hidden inside! After the deep dive, we move into best practices around creating Docker images, including cleaning up as we build, the use of the build cache, and multi-stage builds.

Intro to Orchestration

In this session, we explore how the standardization of a container allows us to build higher-level abstractions. As an example, we dive into container orchestration, which lets us manage a fleet of machines by simply setting the expected state for the cluster. We wrap up by discussing the paradigm shift that containers provides - the idea that machines are to be viewed only as disposable compute resources. Cattle, not pets!

Want to suggest a change? View this page on code.vt.edu