Learn Docker in a Month of Lunches
Elton Stoneman
  • June 2020
  • ISBN 9781617297052
  • 464 pages
  • printed in black & white

This book took me from someone interested in Docker to someone using it effectively in several projects.

Mark Elston, Advantest America
Go from zero to production readiness with Docker in 22 bite-sized lessons! Learn Docker in a Month of Lunches is an accessible task-focused guide to Docker on Linux, Windows, or Mac systems. In it, you’ll learn practical Docker skills to help you tackle the challenges of modern IT, from cloud migration and microservices to handling legacy systems. There’s no excessive theory or niche-use cases—just a quick-and-easy guide to the essentials of Docker you’ll use every day.

About the Technology

The idea behind Docker is simple: package applica­tions in lightweight virtual containers that can be easily installed. The results of this simple idea are huge! Docker makes it possible to manage applications without creating custom infrastructures. Free, open source, and battle-tested, Docker has quickly become must-know technology for developers and administrators.

About the book

Learn Docker in a Month of Lunches introduces Docker concepts through a series of brief hands-on lessons. Follow­ing a learning path perfected by author Elton Stoneman, you’ll run containers by chapter 2 and package applications by chapter 3. Each lesson teaches a practical skill you can practice on Windows, macOS, and Linux systems. By the end of the month you’ll know how to containerize and run any kind of application with Docker.
Table of Contents detailed table of contents

Part 1. Understanding Docker containers and images

1 Before you begin

1.1 Why containers will take over the world

1.1.1 Migrating apps to the cloud

1.1.2 Modernizing legacy apps

1.1.3 Building new cloud-native apps

1.1.4 Technical innovation: Serverless and more

1.1.5 Digital transformation with DevOps

1.2 Is this book for you?

1.3 Creating your lab environment

1.3.1 Installing Docker

1.3.2 Verifying your Docker setup

1.3.3 Downloading the source code for the book

1.3.4 Remembering the cleanup commands

1.4 Being immediately effective

2 Understanding Docker and running Hello World

2.1 Running Hello World in a container

2.2 So what is a container?

2.3 Connecting to a container like a remote computer

2.4 Hosting a website in a container

2.5 Understanding how Docker runs containers

2.6 Lab: Exploring the container filesystem

3 Building your own Docker images

3.1 Using a container image from Docker Hub

3.2 Writing your first Dockerfile

3.3 Building your own container image

3.4 Understanding Docker images and image layers

3.5 Optimizing Dockerfiles to use the image layer cache

3.6 Lab

4 Packaging applications from source code into Docker Images

4.1 Who needs a build server when you have a Dockerfile?

4.2 App walkthrough: Java source code

4.3 App walkthrough: Node.js source code

4.4 App walkthrough: Go source code

4.5 Understanding multi-stage Dockerfiles

4.6 Lab

5 Sharing images with Docker Hub and other registries

5.1 Working with registries, repositories, and image tags

5.2 Pushing your own images to Docker Hub

5.3 Running and using your own Docker registry

5.4 Using image tags effectively

5.5 Turning official images into golden images

5.6 Lab

6 Using Docker volumes for persistent storage

6.1 Why data in containers is not permanent

6.2 Running containers with Docker volumes

6.3 Running containers with filesystem mounts

6.4 Limitations of filesystem mounts

6.5 Understanding how the container filesystem is built

6.6 Lab

Part 2. Running distributed applications in containers

7 Running multi-container apps with Docker Compose

7.1 The anatomy of a Docker Compose file

7.2 Running a multi-container application with Compose

7.3 How Docker plugs containers together

7.4 Application configuration in Docker Compose

7.5 Understanding the problem Docker Compose solves

7.6 Lab

8 Supporting reliability with health checks and dependency checks

8.1 Building health checks into Docker images

8.2 Starting containers with dependency checks

8.3 Writing custom utilities for application check logic

8.4 Defining health checks and dependency checks in Docker Compose

8.5 Understanding how checks power self-healing apps

8.6 Lab

9 Adding observability with containerized monitoring

9.1 The monitoring stack for containerized applications

9.2 Exposing metrics from your application

9.3 Running a Prometheus container to collect metrics

9.4 Running a Grafana container to visualize metrics

9.5 Understanding the levels of observability

9.6 Lab

10 Running multiple environments with Docker Compose

10.1 Deploying many applications with Docker Compose

10.2 Using Docker Compose override files

10.3 Injecting configuration with environment variables and secrets

10.4 Reducing duplication with extension fields

10.5 Understanding the configuration workflow with Docker

10.6 Lab

11 Building and testing applications with Docker and Docker Compose

11.1 How the CI process works with Docker

11.2 Spinning up build infrastructure with Docker

11.3 Capturing build settings with Docker Compose

11.4 Writing CI jobs with no dependencies except Docker

11.5 Understanding containers in the CI process

11.6 Lab

Part 3. Running at scale with a container orchestrator

12 Understanding orchestration: Docker Swarm and Kubernetes

12.1 What is a container orchestrator?

12.2 Setting up a Docker Swarm cluster

12.3 Running applications as Docker Swarm services

12.4 Managing network traffic in the cluster

12.5 Understanding the choice between Docker Swarm and Kubernetes

12.6 Lab

13 Deploying distributed applications as stacks in Docker Swarm

13.1 Using Docker Compose for production deployments

13.2 Managing app configuration with config objects

13.3 Managing confidential settings with secrets

13.4 Storing data with volumes in the Swarm

13.5 Understanding how the cluster manages stacks

13.6 Lab

14 Automating releases with upgrades and rollbacks

14.1 The application upgrade process with Docker

14.2 Configuring production rollouts with Compose

14.3 Configuring service rollbacks

14.4 Managing downtime for your cluster

14.5 Understanding high availability in Swarm clusters

14.6 Lab

15 Configuring Docker for secure remote access and CI/CD

15.1 Endpoint options for the Docker API

15.2 Configuring Docker for secure remote access

15.3 Using Docker Contexts to work with remote engines

15.4 Adding continuous deployment to your CI pipeline

15.5 Understanding the access model for Docker

15.6 Lab

16 Building Docker images that run anywhere: Linux, Windows, Intel, and Arm

16.1 Why multi-architecture images are important

16.2 Building multi-arch images from one or more Dockerfiles

16.3 Pushing multi-arch images to registries with manifests

16.4 Building multi-arch images with Docker Buildx

16.5 Understanding where multi-arch images fit in your roadmap

16.6 Lab

Part 4. Getting your containers ready for production

17 Optimizing your Docker images for size, speed, and security

17.1 How you optimize Docker images

17.2 Choosing the right base images

17.3 Minimizing image layer count and layer size

17.4 Taking your multi-stage builds to the next level

17.5 Understanding why optimization counts

17.6 Lab

18 Application configuration management in containers

18.1 A multi-tiered approach to app configuration

18.2 Packaging config for every environment

18.3 Loading configuration from the runtime

18.4 Configuring legacy apps in the same way as new apps

18.5 Understanding why a flexible configuration model pays off

18.6 Lab

19 Writing and managing application logs with Docker

19.1 Welcome to stderr and stdout!

19.2 Relaying logs from other sinks to stdout

19.3 Collecting and forwarding container logs

19.4 Managing your log output and collection

19.5 Understanding the container logging model

19.6 Lab

20 Controlling HTTP traffic to containers with a reverse proxy

20.1 What is a reverse proxy?

20.2 Handling routing and SSL in the reverse proxy

20.3 Improving performance and reliability with the proxy

20.4 Using a cloud-native reverse proxy

20.5 Understanding the patterns a reverse proxy enables

20.6 Lab

21 Asynchronous communication with a message queue

21.1 What is asynchronous messaging?

21.2 Using a cloud-native message queue

21.3 Consuming and handling messages

21.4 Adding new features with message handlers

21.5 Understanding async messaging patterns

21.6 Lab

22 Never the end

22.1 Run your own proof-of-concept

22.2 Make a case for Docker in your organization

22.3 Plan the path to production

22.4 Meet the Docker community

What's inside

  • Package applications to run in containers
  • Put containers into production
  • Build optimized Docker images
  • Run containerized apps at scale

About the reader

For IT professionals. No previous Docker experience required.

About the author

Elton Stoneman is a consultant, a former architect at Docker, a Microsoft MVP, and a Pluralsight author.

placing your order...

Don't refresh or navigate away from the page.
print book $29.99 $49.99 pBook + eBook + liveBook
Additional shipping charges may apply
Learn Docker in a Month of Lunches (print book) added to cart
continue shopping
go to cart

eBook $24.99 $39.99 3 formats + liveBook
Learn Docker in a Month of Lunches (eBook) added to cart
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.

FREE domestic shipping on three or more pBooks