Docker Fundamentals in 4 Weeks—with Interactivity
Published by O'Reilly Media, Inc.
Core skills for Docker and Linux containers
Linux containers are often advertised as solving a multitude of problems related to delivering and maintaining highly available software in the always-on global environment that most organizations must serve today. There are lots of options when it comes to Linux container tooling, but for computer engineers, Docker still provides the most flexibility. Docker can be run on most popular operating systems and provides tools for building images, running containers, and generally improving repeatability across your whole pipeline.
Join expert Sean Kane to take a deep dive into designing, building, deploying, managing, monitoring, and updating images and containers with Docker and Docker Compose. And as images and containers are the building blocks of a Kubernetes deployment, if you are a Kubernetes user or use Linux containers in production, you’ll gain a better understanding of how your applications are built and packaged for deployment. You’ll leave with a solid foundation in Docker that will also enable you to tackle more advanced classes in containers, Kubernetes, and more.
Week 1: Docker Images
In Week 1, you’ll cover all the basics of Docker images, including how to use them to create fast and scalable containers. You’ll also learn how to use Docker images to build, package, and store your software while picking up tips that will help you keep your images small and your builds fast.
Week 2: Linux Containers
This week’s session will give you a solid understanding of the technologies that enable Linux containers, how developers can use containers to simplify daily workflow, and how operations can use containers to increase stability, flexibility, and security in the production environment. By the end of the day, you’ll know how to run and manage Linux containers via the Docker client, what components of the Linux kernel are used to construct containers, and how to manage your application’s resources usage, along with some core security concepts.
Week 3: Docker Compose
In Week 3, you’ll explore Docker Compose and learn how to create configuration files that enable any engineer to easily spin up multiple dependent services on a local system in a repeatable and reliable fashion while still providing flexibility for configuration and secrets.
Week 4: Docker and the DevOps Pipeline
In the final week, you’ll explore some of the other ways that containers can help you streamline many development and operational tasks, including how they can provide a development environment with all the right tools and versions preinstalled, how the images that you build on your laptop can be reliably deployed all the way to production, and how the various pieces tie together.
NOTE: With today’s registration, you’ll be signed up for all four sessions. Although you can attend any of the sessions individually, we recommend participating in all four weeks.
What you’ll learn and how you can apply it
Week 1: Docker Images
- How the Dockerfile works
- How to build images and optimize them for 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 multistage builds to build the smallest containers possible
Week 2: LInux Containers
- The origins of containers
- How to read container logs
- How to access container statistics and events
- How to debug live containers
- How namespaces and control groups are used to define a container
- How to control resource usage for containers
- How to tune Linux capabilities for container security
- How to leverage secure computing mode
Week 3: Docker Compose
- How to use Docker Compose to launch complex multicontainer service clusters in local dev environments
Week 4: Docker and the DevOps Pipeline
- How containers can be used to simplify various aspects of your DevOps pipeline
- How containers tie into production orchestrators like Kubernetes
And you’ll be able to:
Week 1: Docker Images
- Build optimized Docker images that are as small as possible
- Design Docker images that build as quickly as possible
- Troubleshoot build problems
- Work with Docker image registries
Week 2: Linux Containers
- Use containers in your workflow
- Limit the number of resources a container can consume
- Improve the security of your container
Week 3: Docker Compose
- Craft a working docker-compose.yaml file to enable repeatable deployments of complex interdependent services
- Launch Docker compositions that can stand up complex interdependent services for local testing
- Control, modify, and debug individual services
- Create highly repeatable compositions that are flexible enough to allow easy configuration and secret delivery for individual use cases
Week 4: Docker and the DevOps Pipeline
- Use containers as a ready-to-go dev environment
- Run an internal registry for all of your container images
- Build containers that support multiple architectures
This live event is for you because...
- You want to build and optimize container images.
- You want to use containers effectively in development and production environments.
- You want to simplify local development for engineers working with complex systems.
- You want to make your DevOps pipeline more robust and repeatable.
- You want to streamline software delivery from development to production.
Prerequisites
- A computer (recent Linux, macOS, or Windows 10+) with root/admin rights, CPU virtualization extensions enabled in your BIOS/EFI, and the following installed: Docker Desktop or Engine, a graphical web browser, a text editor, and a Git client (Command-line tools tar, wget, curl, and jq are useful but not required.)
- Familiarity with CI/CD (continuous integration/continuous development), modern software development, and the Unix command line
Recommended preparation:
- Practice between the sessions using Docker and containers interactive scenarios
Recommended follow-up:
- Take Docker: Beyond the Basics (CI & CD) (live online training course with Sean Kane)
- Read Docker: Up & Running, second edition (book)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Week 1: Docker Images
Introduction (15 minutes)
- Presentation: Docker terminology
Building images (50 minutes)
- Presentation: Exploring the Dockerfile
- Hands-on exercises: Test the Docker setup; register with Docker Hub; build your first image
- Q&A
- Break
Advanced building techniques: Part I (65 minutes)
- Presentation: Keeping images small; multistage images
- Hands-on exercise: Debug Docker images
- Q&A
- Break
Advanced building techniques: Part II (60 minutes)
- Hands-on exercises: Layer a smart image; order a Dockerfile; create and use a private registry
- Review
- Q&A
Week 2: Linux Containers
Introduction (20 minutes)
- Presentation: History of containers; Why use Docker and containers?
Container details (45 minutes)
- Presentation and hands-on exercises: Ports and volumes; container logging, statistics, and events
- Q&A
- Break
Debugging and resources (65 minutes)
- Presentation: Kernel functionality
- Hands-on exercise: Debug a container; control resource usage
- Q&A
- Break
Container security (60 minutes)
- Presentation and hands-on exercises: Container UID; privileged containers; Linux capabilities; secure computing mode
- Q&A
- Review
Week 3: Docker Compose
Introduction (15 minutes)
- Presentation: Docker terminology
Creating and launching (50 minutes)
- Presentation: Comparing scripts with Compose
- Hands-on exercise: Launch a composition
- Q&A
- Break
Configuring and exploring (65 minutes)
- Presentation: Understanding the components
- Hands-on exercises: Compose commands; configure the service
- Q&A
- Break
Advanced considerations (60 minutes)
- Hands-on exercises: Manage local secrets; write and launch a new docker-compose.yaml file
- Presentation: A deeper dive into the docker-compose.yaml file; advanced Compose features
- Q&A
- Review
Week 4: Docker and the DevOps Pipeline
Introduction (15 minutes)
- Presentation: Tying everything together
Improving development (50 minutes)
- Presentation: Using containers as a development environment
- Hands-on exercise: Build and test software inside a container
- Q&A
- Break
Improving production (65 minutes)
- Presentation: Exploring the connections between images, containers, and production orchestrators; managing private images
- Hands-on exercise: Spin up and test a local Docker registry instance
- Q&A
- Break
Advanced image building (50 minutes)
- Presentation: Exploring BuildKit and Buildx; images for multiple architectures
- Hands-on exercises: Build an image using BuildKit; build an image for both Intel/AMD and ARM
Wrap-up and Q&A (10 minutes)
Your Instructor
Sean P. Kane
Sean Kane is the founder of techlabs.sh and a Principal Production Operations engineer at SuperOrbital. Sean specializes in engineering, teaching, and writing about modern DevOps processes, including Kubernetes, Docker, Terraform, and more. He has had a long career in production operations, with many diverse roles across a broad range of industries. Sean is the lead inventor on a container-related patent and spends a lot of his spare time writing, teaching, and speaking about technology. He is an avid traveler, hiker, and camper and lives in the US Pacific Northwest with his wife, children, and dogs.