Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News New Book on Docker Provides Comprehensive Introduction

New Book on Docker Provides Comprehensive Introduction


Docker in Action, written by Jeff Nickoloff, provides a comprehensive introduction to Docker and how to integrate it into a development workflow. This book is intended for developers and operations engineers who wish to adopt Docker for application development and integrate it into their software delivery process.

The book’s coverage of Docker and what it can be used for is thorough. It is not a cookbook and in some places it attempts to explain the underlying technology. This can be a little difficult to understand for readers who are unfamiliar with the system level details of how Linux works.

The book is divided into three parts. The first part is an introduction to Docker, its way of doing things and explanations of its underlying technologies. The second part covers effective application of Docker’s capabilities to build and distribute software and also how to automate and secure the process. The third part is about running Docker at scale and how to use tools like Docker Compose and Swarm.

Each chapter is followed by a brief summary of its contents. There are practical examples in almost all chapters that can be tried out for better understanding. Most examples are annotated with explanations. The repositories can be obtained from and the source code from The examples in the book cover a range of software stacks.

Throughout the book, Nickoloff consistently explains lesser known details by going behind the scenes, e.g. the reasoning behind using truncated container ids and why it works.

In part one of the book, Nickoloff focuses on container basics, with each chapter going in depth into a specific topic. The key advantages of using containers like portability and isolation are highlighted. Starting from a small but non-trivial example of running a website monitor, chapter 2 walks the reader through setting up multiple containers. The clean organization of this part makes it easy to understand, however, there are several forward references to concepts that are explained in more detail later (and the author mentions this). The same website example is expanded upon later to build a more complex system.

In addition to explaining the technology behind Docker, this chapter also deals very briefly with PID namespaces which might be a bit confusing to readers who are not familiar with cgroups and namespaces. Dedicated chapters covering container networking, storage volumes and achieving isolation between containers wrap up the first part.

The second part of the book is about the practical application of Docker in the development-deployment workflow. It covers creating and distributing images. As before, the author goes deep into how images work in by explaining union file systems. One chapter is dedicated to working with Dockerfiles. Nickoloff takes the reader through a detailed explanation of the common Dockerfile options as well as how to inject environment variables. There is a lot of useful information here on hardening images.

The third part deals with scaling a Docker deployment and dealing with large scale issues via tools like Docker Compose and Swarm.

The book does not address any specific version of Docker. The instructions to install Docker to try out the examples refer the reader to the instructions found online on the Docker website.

About the author
Jeff Nickoloff builds large-scale services, writes about technology, and helps people achieve their product goals. He has done these things at, Limelight Networks, and Arizona State University. After leaving Amazon in 2014, he founded a consulting company and focused on delivering tools, training, and best practices for Fortune 100 companies and startups alike. If you’d like to chat or work together, you can find him at, or on Twitter as @allingeek.

Rate this Article