Complete Intro to Containers (feat. Docker)

Brian Holt

Brian Holt

SQLite Cloud
6 hours, 4 minutes CC
Complete Intro to Containers (feat. Docker)

Course Description

What started as a way to manage multiple servers on one system has grown into the way we develop, write code, ship applications, and coordinate large scale applications! Containers may have started as tools for the ops team, but now everyone needs to learn to build and use them. In this course you’ll learn what containers are, how to create containers from scratch, how to run containers from Dockerhub, how to create your own containers with Dockerfiles, best practices for front-end and Node.js code in containers, and how to create development environments with containers.

This course and others like it are available as part of our Frontend Masters video subscription.


Course Details

Published: January 15, 2020

Learning Paths

Learn Straight from the Experts Who Shape the Modern Web

Your Path to Senior Developer and Beyond
  • 200+ In-depth courses
  • 18 Learning Paths
  • Industry Leading Experts
  • Live Interactive Workshops
Get Unlimited Access Now

Table of Contents


Section Duration: 8 minutes
  • Introduction
    Brian Holt gives an overview of the course, explains why containers are a relevant topic for any software engineer, discusses what needs to be installed to follow along, and shares where to file issues with the course.


Section Duration: 1 hour
  • Containers
    Brian gives a brief history of why containers are useful tools that host controlled and isolated environments, thanks to a frozen file system. The latter allowed engineers to have access to ready to use containers without having to recreate all the dependencies and file system on a local machine.
  • chroot
    Brian explains that chroot is a Linux kernel feature that allows the containment of processes, restricts a process to a certain file tree, and uses chroot to add bash commands to the bash directory. A chroot operation is necessary to understand how containers are layered to limit or deny access outside of a designated directory tree.
  • chroot Exercise
    Students are instructed to use the chroot process to make the bash command cat function within the bash directory.
  • chroot Solution
    Brian live codes the solution to the chroot exercise.
  • Namespaces
    Brian explains that namespaces are useful to hide processes, networks, and other configurations from other environments, and demonstrates how to configure namespaces and use a command nammed unshare to seperate environments. The parent process has access to the child process, but the child cannot access the parent.
  • cgroups
    Brian explains that cgroups were invented by Google to limit what resources a process can access to avoid entire servers shutting down, and demonstrates how to manually use cgroups to restrict processes.


Section Duration: 53 minutes

The Dockerfile

Section Duration: 50 minutes

Making Tiny Containers

Section Duration: 40 minutes

Features in Docker

Section Duration: 1 hour, 2 minutes

Multi Container Projects

Section Duration: 49 minutes


Section Duration: 22 minutes

Wrapping Up

Section Duration: 15 minutes
  • Wrapping Up
    Brian wraps up the course by sharing additional topics that students can learn about, additional resources about non Docker containers, and information about orchestration systems such as Docker Swarm, Apache Mesos, and Hashicorp Nomad. Questions are fielded from the audience about container monitoring, using Gatsby with containers, and the difference between CMD and run.
One reason why I love Frontend Masters so much: I wanted to learn about docker, now I know about docker, but also about Linux containers, cgroups, namespaces and chroot. Thanks Brian Holt 🙏



Just completed Intro to Docker & Containers by Brian Holt on Frontend Masters. This was the most accurate way of learning Docker. Was really fun.
Jayesh Potlabattini

Jayesh Potlabattini


Brian, thanks for your course on Containers and Docker on Frontend Masters! SO glad to finally grasp how they work. I've lost many hours to failing with Docker because I didn't understand the internals. No more!
Caleb Lovell

Caleb Lovell


Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now