liveBook · Manning

What you will learn in Learn Docker in a Month of Lunches, Second Edition

by Elton Stoneman

Chapter by chapter

Chapter 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 A note about technology · 1.4 Creating your lab environment · 1.4.1 Installing Docker · 1.4.2 Choosing your shell · 1.4.3 Verifying your Docker setup · 1.4.4 Downloading the source code for the book · 1.4.5 Remembering the cleanup commands · 1.5 Being immediately effective

What you learn in chapter 1 →

Chapter 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

What you learn in chapter 2 →

Chapter 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

What you learn in chapter 3 →

Chapter 4: Packaging applications from source code into Docker images

4.1 Who needs a build server when you have a Dockerfile? · 4.2 App walk-through: Java source code · 4.3 App walk-through: Node.js source code · 4.4 App walk-through: Go source code · 4.5 Understanding multi-stage Dockerfiles · 4.6 Lab

What you learn in chapter 4 →

Chapter 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

What you learn in chapter 5 →

Chapter 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 Knowing the limitations of filesystem mounts · 6.5 Understanding how the container filesystem is built · 6.6 Lab

What you learn in chapter 6 →

Chapter 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

What you learn in chapter 7 →

Chapter 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

What you learn in chapter 8 →

Chapter 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

What you learn in chapter 9 →

Chapter 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

What you learn in chapter 10 →

Chapter 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

What you learn in chapter 11 →

Chapter 12: Running containers on different platforms

12.1 Why you need to support multiple platforms · 12.2 Building multi-platform image variants · 12.3 Grouping platform-specific images with manifests · 12.4 Building and pushing multi-platform images with Buildx · 12.5 Considering platform support in your road maps · 12.6 Lab

What you learn in chapter 12 →

Chapter 13: Replatforming the legacy: Packaging and running Windows apps in Docker

13.1 How Windows containers are different · 13.2 Packaging applications with Windows Server Containers · 13.3 Building .NET Framework applications in containers · 13.4 Working with SQL Server database containers · 13.5 Understanding where Windows containers fit in your landscape · 13.6 Lab

What you learn in chapter 13 →

Chapter 14: Containers in the cloud with Microsoft Azure and Google Cloud

14.1 Where managed container services fit in · 14.2 Private registries vs. Docker Hub · 14.3 Azure Container Apps · 14.4 Google Cloud Run · 14.5 Choosing between container platforms · 14.6 Lab

What you learn in chapter 14 →

Chapter 15: Kubernetes: A primer

15.1 Why Kubernetes? · 15.2 Modeling applications with Pods and Services · 15.3 Scaling and upgrading apps with Deployments · 15.4 Injecting configuration settings with ConfigMaps and Secrets · 15.5 Planning out a Kubernetes learning path · 15.6 Lab

What you learn in chapter 15 →

Chapter 16: CI/CD in the cloud with Docker and GitHub Actions

16.1 DevOps in the cloud with GitHub Actions · 16.2 Pushing images to the GitHub Container Registry · 16.3 End-to-end tests with Docker Compose · 16.4 Deploying to Kubernetes · 16.5 Structuring a portable build process · 16.6 Lab

What you learn in chapter 16 →

Chapter 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 Why optimization counts · 17.6 Lab

What you learn in chapter 17 →

Chapter 18: Application configuration management in containers

18.1 A multitiered approach to app configuration · 18.2 Packaging configuration for every environment · 18.3 Loading configuration from the runtime · 18.4 Configuring legacy apps in the same way as new apps · 18.5 Why a flexible configuration model pays off · 18.6 Lab

What you learn in chapter 18 →

Chapter 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

What you learn in chapter 19 →

Chapter 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

What you learn in chapter 20 →

Chapter 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 asynchronous messaging patterns · 21.6 Lab

What you learn in chapter 21 →

Chapter 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 you learn in chapter 22 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.