Book Review: Docker in Action by Jeff Nickoloff

Reviews This post may contain affiliate links. If you buy something we get a small commission at no extra charge to you. (read more)

Very few web developers understand the power of Docker. It can be very complicated, but it performs a simple task.

It creates a unique virtual container environment for any website, and this container can be moved across any operating system. Websites can be designed & hosted across a variety of platforms without the need to reconfigure a server, database, or backend plugins like php-fpm.

The book Docker in Action brings the elegance of Docker to a simpler form of explanation. This book explains how the Docker engine can be applied to modern web development for deploying and scaling large applications. It’s not a tool that everyone will need. But for those who do I think this book will prove invaluable to the learning process.

Book Contents

If there’s one thing this book does well it’s getting you moving with Docker. Just the idea of Docker’s functionality can lead some developers into paralysis because it’s such a complex system that can be very hard to follow.

Yet the book is still surprisingly up-to-date even with major advancements in Docker over the last few years.

Here’s a breakdown of the chapter contents.

  1. Welcome to Docker
  2. Running Software in Containers
  3. Software Installation Simplified
  4. Persistent Storage & Shared State with Volumes
  5. Network Exposure
  6. Limiting Risk with Isolation
  7. Packaging Software in Images
  8. Build Automation & Advanced Image Considerations
  9. Public and Private Software Distribution
  10. Running Customized Registries
  11. Declarative Environments with Docker Compose
  12. Clusters with Machine and Swarm

All of Manning’s books follow similar titles and the “In Action” suffix typically denotes intro books with pragmatic steps. This is definitely true with Docker in Action because it reads like it’s geared towards developers who may know a bit of Linux/Unix but do not know anything about Docker.

Automation is the true power behind Docker. Once you learn how to build containers you’ll have no problem managing a library of websites. Each chapter in this book gets progressively more detailed teaching you how to install, manage, deploy, and delete containers from your library. It also covers the basics of Docker Hub for beginners.

This book delves into very detailed topics like Swarm for clustering and Compose for managing multi-container Docker applications. It also covers Docker Machine in great detail which is perfect for anyone moving away from the Linux/Unix platform into Windows or Mac OS X.

This is an intro book yet it’s still very detailed in writing and technicality.

The book ends pretty abruptly but it really doesn’t leave you “done” with Docker. If anything this book just gets you started!

Once you finish Docker in Action you’ll be left with the absolute basics to take it and start running. I think this is more than enough for anyone to learn Docker in a few days or weeks. But don’t let this be your only guide because it likely won’t answer all of your questions.

Pros & Cons

One of the biggest complaints newbies have is an inconsistency in writing. Most of the “simple” concepts are explained in very basic terms. Once you get to the sections on swarms and deployment you might be thrown for a loop.

It’s not crazy to feel like you fully understand Docker in one chapter, then in the next feel totally lost. It’s not necessarily the author’s fault either. I think it’s more of a problem with Docker’s complexity as a service. But if you’re adamant enough to push through the confusion and keep trying I guarantee you’ll learn a lot.

I really like all the live examples, screenshots, and command line examples used in the book. However I don’t think they were presented in the best way for beginners. I also would’ve liked to see more practical examples or even “best practices” for using Docker as a beginner.

This is a book that you might have to come back to a few times to really ingrain the basics into your skull. Docker is not that confusing once you understand how it works. But fully understanding why you’re building containers and how to deploy them can take a lot of time.

Thankfully Jeff writes this book from a practical standpoint. He offers real-world executable lessons that you can apply to your workflow. This is undeniably the best way to learn anything: by simply doing it.

The biggest reason I’d suggest this book is the clarity of writing. It does get verbose at times and while the book only hits about 300 pages, it still contains everything you need to know to get moving with Docker.

I didn’t find much on continuous delivery which was something I wanted to see. But this may be out of the league of “beginner” material, so it’s not any reason I’d dock points from this title.

Potential confusion is almost certain for brand new developers getting started with Docker. But if you have this book at your side & access to Google for problem solving then you’ll have all the resources you need to learn.

Final Summary

Among all the tech and IT books that cover Docker I would highly recommend this one above all else.

Docker in Action is the tome of Docker setup, config, maintenance, and consistent use for deployment of multiple sites(and container clusters). You can buy this book as a complete novice and walk away at the intermediate-to-advanced level of Docker competency.

The author explains the terms in a very concise way using examples to explain how you perform certain tasks. You’ll learn how to do this, but you’ll also learn why you’re doing things. Once you understand why Docker is so valued as an ecosystem then you’ll really begin to unlock the power of this package management/web software deployment engine.

And in my opinion the best way to start on that road is with this incredible book.

Review Rating: 4.5/5


Alex is a fullstack developer with years of experience working in digital agencies and as a freelancer. He writes about educational resources and tools for programmers building the future of the web.