Jump to ratings and reviews
Rate this book

Using Docker

Rate this book
Docker containers hold the promise of breaking down barriers between development and operations, avoiding platform lock-in and easing installation and configuration of common components.

This practical book will take you through the fundamentals of Docker, explaining common idioms and pointing out potential pitfalls. It guides you through the creation and deployment of a simple webapp, showing how Docker can be used at all stages, including development, testing and deployment.

Other topics in this book include using Docker to provide a microservices architecture, how to best do service discovery, and how to bundle applications using Docker. You'll also get an overview of the large ecosystem that has sprung up around Docker, including the various PaaS offerings and configuration tools.

355 pages, ebook

First published July 25, 2015

53 people are currently reading
271 people want to read

About the author

Adrian Mouat

4 books6 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
52 (27%)
4 stars
94 (48%)
3 stars
42 (21%)
2 stars
2 (1%)
1 star
2 (1%)
Displaying 1 - 30 of 32 reviews
Profile Image for Rod Hilton.
152 reviews3,116 followers
March 2, 2016
This is just about the most you could expect from a book about Docker. It's far, far better than the documentation, it talks about best principles and practices, and every single suggestion is accompanied by detailed commands to type to accomplish the tasks. The book has a great throughline of developing and improving a small application, which is used as a reference in every single chapter.

It covers almost everything you want to know about Docker including more operational stuff like monitoring, orchestration, and security. Pretty much no stone is left unturned, what you want to know about using Docker for real is covered eventually.

Occasionally I wished the book went into a bit more depth, or I felt like the author was sort of hand-wavey. There were a lot of times when he'd say something like "don't do this in production" without much explanation of what you WOULD want to do in production. Additionally, there were frequent mentions of how this or that aspect of Docker will be fixed or changed soon, leaving the reader to both wonder if Docker is truly ready for prime time, as well as if this was the proper time to publish a book on the subject with the technology so in-flux.

My biggest complaint is actually about Docker itself. By later chapters, Mouat would show incredibly complex and lengthy commands to type that left me wondering if it was even possible for documentation to be good enough to get a person to the point where they'd be able to type that command from scratch. What would you do if you wanted to do something slightly different than Mouat's example? It seemed almost impenetrable at times.

One thing I felt was lacking was an example of persistent data storage. The identidock example that runs through the entire book is all non-persistent, every single container could be restarted with complete loss of state and have no effect. The closest thing to a database used, redis, was used as a simple cache that could be emptied upon restart with no penalty. But many applications need real-live databases that need to persist across container restarts, and there's basically no coverage of how one would accomplish such a thing. From my own Googling it looks like the agreed-upon pattern is a data-only container volume linked to the system needing to store data, but it would have been nice if the example application could have incorporated such a fundamentally basic need.

Overall the book is fair and does a great job of helping the reader understand the pros and cons of containerized deployments, and it takes you through pretty much everything to know, at least in the world of Docker. In terms of how you might want to change your applications to make them more containerizable, it's largely left to the reader. Nonetheless, I can't imagine there even being a book on Docker that's more thorough and properly-paced than this one, it's basically a Missing Manual.
Profile Image for Alex Ott.
Author 3 books207 followers
August 26, 2017
Quite good book on using Docker. It covers many topics - from starting to use the Docker, to the deployment, networking, logging/monitoring, orchestration/clustering, and security... And it's quite new - it mention Docker 1.8 & other new developments.

I gave only 4 stars only because of surprisingly many typos & errors in examples - be careful when executing them - I hope that they will be fixed in new editions.

Profile Image for Chris King.
43 reviews1 follower
March 8, 2016
A great introduction into containers that do not contain.
Profile Image for Michael Koltsov.
110 reviews69 followers
November 22, 2016
As Docker continues to keep its pace as a constantly evolving technology, there's no book that encompasses all aspects of it. In my opinion, this book came close to that. Though sometimes it doesn't provide you all technical details it covers a lot of what you need to deal with Docker on a daily basis.

I found the examples that come with the book are so helpful that even sometimes I could even use them in order to improve some aspects of my daily routine.

The book covers docker 1.8, which API hasn't changed so much since the book has been written. But some of the networking APIs, docker compose has slightly changed which allows to give this book only 4 stars. Apart from that it's not a constantly updated book I can recommend it to anyone who considers Docker as a viable technology.
Profile Image for Fiona.
308 reviews8 followers
October 22, 2019
Adrian Mouat hat alles richtig gemacht.
- Die Kapitel bauen aufeinander auf
- Begleitend kann alles an einem Beispiel-Projekt ausprobiert werden
- Ergänzende Informationen werden durch Fußnoten und Kasten sinnvoll eingestreut
- Die Struktur geht vom abstrakten ins konkrete, sodass man beliebig tief einsteigen oder Abschnitte überspringen kann
- Von den ersten Schritten bis hin zu groß angelegter Orchestrierung und Sicherheitsbedenken wurde an alles gedacht

Man könnte bemängeln, dass er seinen Humor und seine persönliche Meinung einbringt. Ich schätze sowas allerdings sehr an einem Autor und begrüße es, wenn durch Humor die Synapsen etwas gelockert werden, und durch Persönlichkeit die Informationen mit authentischer Färbung übermittelt werden.
Man sollte im Fach schließlich immer ein Gefühl dafür haben, wem man gerade nachplappert. Ohne geht nicht, und wenn der Autor genau Preis gibt, wo seine Perspektive im Spiel ist, hat man es als Konsument seiner Arbeit wesentlich leichter, das erworbene Wissen richtig zu multiplizieren.

Vielen Dank für diese unterhaltsame Einführung in diese spannende Technologie!
Profile Image for Erik Molnar.
104 reviews
January 25, 2018
This is very informative book on Docker. I am new to Docker and I was able to follow along all the way until about chapter 9. When it got to that point, the instructions became less clear. He stopped telling you where to drop certain files. I made my own assumptions and it did not always work. This made me spend some time to try to figure out what went wrong, then guessing that I may have my Dockerfile or script in the wrong directory. It would have been nice if he continued to provide that information in a simple sentence throughout the rest of the book. There were a few other things I had to google because the instructions were not provided, rather a solution to a technical problem was merely mentioned, not explained.

Other than that one small issue, I enjoyed the book. I do think it is more for an intermediate level user than a beginner. Docker up and running is probably a better book for beginners. This book covers everything in there and a whole lot more.
Profile Image for Ajitabh Pandey.
840 reviews49 followers
December 19, 2019
This is an excellent book to help developers kick start with the container life cycle. It explains all the life cycle components from building till delivery and then running containerised apps in production.
A must read for every developer. A word of caution though. This is a rapidly evolving field, so the books tend to get outdated very fast. Developers should keep themselves updated with the latest through other mediums.
Profile Image for Craig Nicol.
67 reviews
March 19, 2022
Lots of useful info. Like most tech books, there's some information around tooling which will be out of date quickly, but it's a solid foundation for anyone starting out in DevOps to understand all the moving parts.

It builds up knowledge incrementally, and is honest about the the author is providing an overview rather than a detailed opinion (particularly around security which is a book on its own).
Profile Image for Jose  Seco Sanz.
261 reviews17 followers
October 28, 2023
Well, this is a good book, but it has convinced me not to use docker except for simple things. This can get complex very fast. Also have of the time the book is configuring other things different from docker. Of course, if you want to use something, you need to configure it, but one example for each thing would have been enough.
Profile Image for Maxim.
33 reviews1 follower
May 17, 2018
Excellent. Yes, the stuff in the middle of the book is hard to get without locally reproducing it 1:1 (it isn't possible anymore), but, nevertheless, it's an excellent introduction to the Docker.
Profile Image for Ferhat Elmas.
850 reviews13 followers
July 7, 2019
Even if it's mostly outdated, very good intro with examples to follow up, some background and best practices.
14 reviews
Want to read
October 12, 2019
mentioned in UNIX and Linux System Administration Handbook (4th edition)
Profile Image for Scott.
56 reviews
July 2, 2020
Not the best book for the beginner. It got to complex towards the end.
Profile Image for Dmitry.
188 reviews8 followers
October 31, 2020
Это выглядит как любая статья по докеру, просто на 300 страниц. Очень длинный пересказ банальной документации, иногда вдруг сваливающийся в термины, для понимания которых нужны знания линукса
Profile Image for Jascha.
151 reviews
January 29, 2016
After a 2015 under the spotlight, which consolidated its position, Docker has become the de facto solution to get those monoliths that were split into micro services served through containers. Docker per se did not really create something completely new and revolutionary, since containers have been there since ages (Solaris Zones anyone?). But it certainly did make the whole thing easy to use for us mortals. The impact Docker had on the IT world caught the interest of giants, such as Amazon and Google, as well as that of a horde of small start-ups. This, coupled with the code being freely accessible on GitHub, resulted in a lot of new versions being released with new, juicy features; and it also resulted in lots of conferences, blogs and, luckily for us, books. In the last 12 months, indeed, the amount of titles dedicated to that blue whale significantly increased, and we now have quite a good selection of titles to get started, as well as to learn advanced topics. Using Docker belongs to the latter category. It targets experienced professionals interested in deploying and orchestrating infrastructures through Docker.

Released at the end of 2015, and covering v1.8, using Docker, which spans almost 400 pages, is divided into three main parts: the basics, (continuous) deployment and orchestration, and, last but not least, a series of chapter covering miscellaneous topics, among which that very promising dedicated to service discovery.

As mentioned above, Using Docker is a title that targets experts. Despite this, the first chapters cover the very basics: the architecture and a quick listing of the commands to interact with the daemon. Before getting a little deeper into these chapters, let's say that, overall, this first part is by far the worst of the whole book. Why? First of all, a book that cover topics that are meant for experts (someone new to Docker won't certainly start with how Docker couples with Jenkins or Puppet, after all) should not waste pages listing each and every command. Not only they are supposed to be known already by the reader, but, most important, the official documentation is quite good. Next, while describing the Docker architecture never hurts, more space should be dedicated to the concepts of union file system, cgroups and namespaces. They are barely touched or not at all. On the other hand, let's praise how the author explains the build context and volumes. The examples used are concise. On top of that, we are also given hints to avoid common pitfalls.

The second part of the book covers many aspects of a software life cycle and how Docker can be part of each of them, that is, how we can take advantage of containers in the many different steps our application passes through, from development up to deployment, passing through continuous integration. Throughout these five chapters, an interesting Python Flask example is used as a reference.

Continuous integration is covered in the eighth chapter and is certainly among the best chapters of the whole book. The author first discusses the different approaches to get Jenkins and Docker working in synergy, then, through a step by step approach, he shows the reader how to automate the whole testing process so that when a push is made, Jenkins fires up containers, runs tests and stores safely the resulting logs. The examples are easy to follow, despite their complexity, and significantly help the reader getting a better understanding of the concepts being taught.

Among the other concepts tackled in this second part of the book are deploying containers, which covers several third party solutions, such as AWS. Here Docker Machine is introduced to the reader. Again, what stands out is how the author presents many different approaches, so that the reader can have a better global understanding. In this case, Adrian covers bash scripts, a process manager, and using a configuration management system (Puppet, Chef, ...). Sharing secrets is also briefly discussed, even if it's one of the most important open topics of the community and, as such, would probably deserve a title on its own. Logging is another chapter of this middle part of Using Docker that the reader should read over and over. The author presents different techniques to gather the logs so that, once centralized, they can be better exploited. The ELK stack is being beautifully discussed here.

The last part of the book does not have a specific topic. Among these few chapters is service discovery. Again Adrian does a great job to introduce the concepts and the possible solutions. All of this with many concise examples that the reader should definitely try out.

Overall, a very good book, no doubts. While the first part was so so, the rest of the book provide those interested in advanced topics with up to date theory and examples. Definitely suggested.

As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com. Feel free to pass by and share your thoughts!
Profile Image for Anton Antonov.
350 reviews48 followers
January 3, 2016
Amazing Docker intro/intermediate book.

Compared to Docker:Up and Running, this book is better in every possible way.

The technology is addressed in development, testing, staging and production environments.
At the start of each chapter you have a git clone snippet if you skipped a chapter or something didn't work, to continue freely without having to waste hours on solving an issue you missed or happened due to newer versions of the software released after the book. And also props to the author for fixing versions.

Content-wise - you'll start from how Docker works, transition into building containers by hand, orchestrating with "Compose", building development and testing environments and setuping a basic Jenkins CI.

That's just the part 1 and part 2 (except deploying, logging and monitoring chapters). For the content in the first two parts, the book is already a must read if you want to understand Docker for your own good.

However if you really want to use Docker at your work and be a somewhat "early" adopter - chapter 9 (deploying) and 10 (logging and monitoring) are your first steps into that territory.

Using only the most modern approaches. Docker machine for communicating with Cloud providers - e.g. DigitalOcean, Ansible for orchestration (instead of Compose, since Compose isn't that mature yet), EC2 and Kubernetes are a main focus too in later chapters.

For + $10 dollars on top of your purchase - you should apply every snippet in the book and buy yourself a DigitalOcean $5 and the nano/micro Amazon EC2.

You'll face all the common Docker problems that you'll have to solve eventually at work. For example, the bane of my existence - sharing SSH keys in Docker infrastructures. I'm still not sure how well I solve that, but I hope in future the Docker team addresses that (there are already GH issues and discussions).


Now the book has a few downs. While Kubernetes, EC2 and Ansible, along with ElasticSearch, Logstash and Kibana, are mentioned - they're not addressed deep enough.

If you ran into a problem, you're mostly on your own. And for sure, debugging a new, new technology while reading a book about something already new to you... well that's a nightmare. I ran into multiple issues while using Docker Machine with DigitalOcean even though I had experience with DigitalOcean, but not with cloud-provided Docker machine.

Ansible is the same story. It falls into the category of SSH keys sharing issues.


Either way, get this book, read it, be more knowledgeable and peak into the grounds of "DevOps". Its's more of a buzzword, but if you adopt it as a way of thinking and not drawing a boundary between dev/sys admin - you'll get far.
Profile Image for David Castillo.
54 reviews2 followers
June 23, 2016
A comprehensive guide to Docker. Beginners and more experienced users will find interesting things here, as the author starts from the very basics (explaining concepts like that of container, image, among others), and reaches advanced topics like orchestration and management, while giving the reader some insights on Docker internals and caveats. A downside is that this book covers Docker 1.8, while v1.12, in which networking will change completely from linking containers to publishing services, is just about to be released. Nevertheless, the author is aware of this and does a fairly good job at comparing the changes and giving a preview of them.
The amount of tools used for the examples in this book (Compose, Machine, Weave, Consul, etcd, Kubernetes, Logstash, Kibana, Elasticsearch, Mesos, etc.) can get a little bit overwhelming. If the reader has some knowledge of them that won't be a problem. Otherwise, I suggest following the examples to grasp the concepts and get to know the tools.
With this in mind, I felt like it was a very good, enjoyable, insightful book!
64 reviews54 followers
October 23, 2016
I liked the breadth of the material. It was helpful that the book covered the full spectrum from development to production. Also touching on Docker security, which most other Docker books/tutorials I've read don't cover.

However it needed some serious editing. There were typos or mistakes in about one in every four pages. This includes typos in choose samples. There was even an instance were it looked like part of the sentence was copied there or part of it was deleted out. I can't tell you which it was because whatever was printed didn't make sense.
Profile Image for Igor Krasilich.
4 reviews
February 26, 2016
First part is very basic, mostly duplicating officials docs. But starting from second half of the book really valuable content starts. Book covers not only usage of the docker but modern approach to building scalable applications and introduces several usefull tools. Great starting point for building web architechtures.
Profile Image for Andy Wang.
10 reviews
January 14, 2016
Best Docker book I have ever read. My current projects utilize Docker containers to manage Cassandra, Spark, Postgresql, Kafka and Node.js applications. This book introduces how to integrate Docker into development which I didn't find in other books. Highly recommended.
Profile Image for John Wargo.
205 reviews4 followers
February 22, 2018
Its OK. I spent a lot of time trying to understand what he's telling me and why. There were a lot of things he brought up, but never explained or explained at a very high level. I found that I didn't get as much as I wanted from this book.
Profile Image for Cheewai Lai.
75 reviews1 follower
Read
December 28, 2015
The most comprehensive book on docker ecosystem by far. Fearlessly tackles difficult and rapidly evolving aproaches to orchestration, monitoring and service discovery.
Profile Image for Juan Ponce.
40 reviews6 followers
February 9, 2016
Clear, short and practical guide for Docker, you can get everything from the basics up to clustering, a great book.
Profile Image for John.
15 reviews
July 23, 2016
Great, fast overview of Docker and getting it into actual usage. Starts off simple and gets complex towards the end.
Profile Image for Davron.
2 reviews
March 29, 2017
For those who never dealt with a docker containers before but have been thinking about, this book would serve its purpose.
It would be a good choice to start off with
Profile Image for Russell.
61 reviews
May 26, 2017
Good resource for learning docker and the surrounding ecosystem.
Displaying 1 - 30 of 32 reviews

Can't find what you're looking for?

Get help and learn more about the design.