Docker Fundamentals in 2 Days
Published by O'Reilly Media, Inc.
Learn the 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. 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.
Day 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.
Day 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 resource usage, along with some core security concepts. NOTE: With today’s registration, you’ll be signed up for both sessions. Although you can attend any of the sessions individually, we recommend participating in both days.
What you’ll learn and how you can apply it
Day 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
Day 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
And you’ll be able to:
Day 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
Day 2: Linux Containers
- Use containers in your workflow
- Limit the number of resources a container can consume
- Improve the security of your container
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
Course Setup:
- Students who want to follow along with the hands-on activities in class will need to have or create accounts during class for: Docker Hub - https://hub.docker.com/
Recommended preparation:
- Practice between the sessions using Docker and containers interactive scenarios
Recommended follow-up:
- Take Docker: Beyond the Basics (CI and 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.
Day 1: Docker Images
Introduction
- Presentation: Docker terminology
Building images
- 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
- Presentation: Keeping images small; multistage images
- Hands-on exercise: Debug Docker images
- Q&A
- Break
Advanced building techniques: Part II
- Hands-on exercises: Layer a smart image; order a Dockerfile; create and use a private registry
- Review
- Q&A
Day 2: Linux Containers
Introduction
- Presentation: History of containers; Why use Docker and containers?
Container details
- Presentation and hands-on exercises: Ports and volumes; container logging, statistics, and events
- Q&A
- Break
Debugging and resources
- Presentation: Kernel functionality
- Hands-on exercise: Debug a container; control resource usage
- Q&A
- Break
Container security
- Presentation and hands-on exercises: Container UID; privileged containers; Linux capabilities; secure computing mode
- Q&A
- Review
Wrap-up and Q&A
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.