I was recently tasked with developing a new web service application at work. This gave me a reason to investigate Docker as a possible deployment platform, so I’ve been reading about Docker. I just finished reading my second book on the topic, the not-yet-released (but it is available for Kindle) Docker: Up and Running by Karl Matthias and Sean P. Kane. This is my review of the book.
O’Reilly usually produces good books, and Docker: Up and Running is no exception. It serves as an excellent introduction to Docker, whether you come from a systems administration, DevOps or a software development background. Although dry at times (which I blame on the subject matter, not on the writing), the book is well organized, and logically walks the reader through the essentials of Docker, starting with what it is and its history, and ending with a moderately advanced discussion of Linux kernel internals as they relate to Docker security concerns, and how to design a deployment strategy around Docker.
This was the second book I read on the topic of Docker, The Docker Book by James Turnbull being the first. But that book left me with a lot of questions that Docker: Up and Running has helped answer for me. Specifically, I felt this book provided a much-needed big-picture understanding of Docker, without neglecting important details.
- Logically organized, advancing thematically from the history of Docker, to how to install it, to how to build and manage images, to debugging, to security concerns.
- The book starts by explaining general concepts, then drills down into the details. This makes the book easy to follow, and also easy to skim over parts that may not interest you.
- As technical books go, this one is written in a relatively engaging style. It’s not quite a page-turner, but it didn’t feel like a chore to get through the material.
- The compartmental organization of the book makes it easy to use as a reference. Topics which aren’t immediately relevant to you are easy to skip over and return to later.
- I feel this book provides enough information that you can actually get started using Docker after finishing it. That is to say, it’s not just a primer that leaves you with a general impression, but leaves the nitty gritty up to you to research on your own.
- This book looks a lot like a first edition (strange, huh?) with a lot of typographical errors.
- I feel like most of the OS-specific instructions were wasted space.
For most operations, instructions were included for RedHat-based, Debian-based, OS X, and “Other” operating systems. I may be in the minority, but I feel like this would be better addressed on a web site (docs.docker.com, anyone?), where inevitable changes can be made, rather than by wasting the space in a print (or even electronic) book where, by definition, at most 25% of the information is useful to any given reader. On the other hand, it was easy to just skip those sections.
- As with any rapidly-changing technology, large portions of this book are likely to become outdated very quickly. Hopefully, new editions will be quick to market.
In conclusion, I believe this book fills an important gap in the area of Docker books. Although I’ve now read only two books on the topic, the fact that the highest-rated Docker book prior to this one was, in my opinion, lacking, suggests to me that this will quickly become the de facto Docker book for quite a while.
If you’re looking for a book on Docker, this should be the one.