ABOUT THIS BOOK
xvii
last part covers running Docker in production, focusing on the options for standard pro-
duction operations, as well as what can go wrong and how to deal with it.
Docker is such a broad, flexible, and dynamic tool that keeping up with its fast-
evolving landscape is not for the faint-hearted. We’ve endeavored to give you an
understanding of critical concepts through real-world applications and examples,
with the aim of giving you the power to critically evaluate future tools and technolo-
gies within the Docker ecosystem with confidence. We’ve tried to make the book an
enjoyable tour of the many ways we’ve seen Docker make our lives easier and even
fun. Immersing ourselves in Docker has introduced us to many interesting software
techniques spanning the entire software lifecycle in a stimulating way, and we hope
that this is an experience you’ll share.
Roadmap
This book consists of 16 chapters divided into 5 parts.
Part 1 lays down the groundwork for the rest of the book, introducing Docker and
getting you to run some basic Docker commands. Chapter 2 spends some time on get-
ting you familiar with Docker’s client-server architecture and how to debug it, which
can be useful for identifying issues with unconventional Docker setups.
Part 2 focuses on familiarizing you with Docker and getting the most out of Docker
on your own machine. An analogy with a concept you may be familiar with, virtual
machines, is used as the basis for chapter 3, to give you an easier route into getting
started using Docker for real. Chapters 4, 5, and 6 then detail several Docker tech-
niques we’ve found ourselves using on a daily basis to build images, run images, and
manage Docker itself. The final chapter in this part explores the topic of building
images in more depth by looking at configuration management techniques.
Part 3 begins looking at uses of Docker in a DevOps context, from using it for auto-
mation of software builds and tests to moving your built software to different places.
This part concludes with a chapter on the Docker virtual network, which introduces
Docker Compose and covers some more advanced networking topics, like network
simulation and Docker network plugins.
Part 4 examines the topic of orchestrating containers. We’ll take you on a journey
from a single container on a single host to a Docker-based platform running on a
“data center as an operating system.” Chapter 13 is an extended discussion of the
areas that must be considered when choosing a Docker-based platform, and it doubles
as a guide to what enterprise architects think about when implementing technologies
like this.
Part 5 covers a number of topics for using Docker effectively in a production envi-
ronment. Chapter 14 addresses the important topic of security, explaining how to lock
down processes running inside a container and how to restrict access to an externally
exposed Docker daemon. The final two chapters go into detail on some key practical
information for running Docker in production. Chapter 15 demonstrates how to
apply classic sysadmin knowledge in the context of containers, from logging to