0-1: Welcome to the Course

This is the text component of the course Container Essentials, hosted on The Taggart Institute.

You should access the entire text at https://ce.taggartinstitute.org

AI-Free Disclaimer

no-ai-used

No part of this book was generated by a large language model such as ChatGPT or Google Bard. The prose and code you see here was created by humans, mostly by me, Michael Taggart, with help from open source software authors and contributors.


Copyright

Although this repository is open source and suggestions in the form of Pull Requests are welcome, this remains the intellectual property of The Taggart Institute, LLC, under the following license:

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Course Overview

This course serves as a general introduction to the concepts of containerization, and the practical uses of containers to deploy software, use tools, and host services. The course will focus on Docker containers, but also explore the use of alternative container runtimes.

As always, we break down our learning objectives between skills and concepts.

Skills

By the end of the course, the learner should be able to:

  • Install Docker on a fresh system
  • Download images from an image registry
  • Run containers
  • Build new images from a Dockerfile
  • Launch apps with Docker Compose
  • Write Compose files to create multi-container applications
  • Configure Docker in Swarm Mode
  • Apply cgroups, resource constraints, and other security best practices
  • Replace Docker with Podman or another container runtime

Concepts

By the end of the course, the learner should understand:

  • The difference between containers and virtual machines
  • The relationship between images and containers
  • How containers and images are layered
  • Why containers should be ephemeral, and how to work with that ephemerality
  • How data can persist beyond a single container's lifecycle
  • How Docker networking connects and isolates containers
  • How Docker Swarm scales containerized applications

Prerequisites

Although this is an introductory course, fluency with the Linux command line is expected. If you need a refresher, we have a course for you!


Materials/Resources

Learners will have two options for completing the labs: using a local virtual machine provisioned with VirtualBox, or using Azure cloud services. While the latter will require an account, the course will be completable with the Free Trial services. This method is offered so that learners who do not have adequate local computing power can still participate in the labs.

We will deploy two Ubuntu virtual machines, each with:

  • 2 CPUs
  • 2 GB of RAM
  • 30 GB of disk space

So if you choose the VirtualBox route, be sure you have adequate compute resources.


The TTI Community

Discussion and support for this course takes place on The Taggart Institute Discord. Please consider joining the community of learners there!

Complete and Continue