- Paperback: 354 pages
- Publisher: O'Reilly Media; 1 edition (January 7, 2016)
- Language: English
- ISBN-10: 1491915765
- ISBN-13: 978-1491915769
- Product Dimensions: 7 x 0.8 x 9.2 inches
- Shipping Weight: 12.6 ounces (View shipping rates and policies)
- Average Customer Review: 12 customer reviews
- Amazon Best Sellers Rank: #185,031 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Using Docker: Developing and Deploying Software with Containers 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
"Enlightenment Now: The Case for Reason, Science, Humanism, and Progress"
Is the world really falling apart? Is the ideal of progress obsolete? Cognitive scientist and public intellectual Steven Pinker urges us to step back from the gory headlines and prophecies of doom, and instead, follow the data: In seventy-five jaw-dropping graphs, Pinker shows that life, health, prosperity, safety, peace, knowledge, and happiness are on the rise. Learn more
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Where this book was great for me was in the 6th chapter where the author shows how to create a simple web app in Docker. For awhile, I've been trying to deploy some Python code online and I was not sure how. This chapter was coincidentally programmed in Python using the Flask framework. I cloned the github resource for chapter 6, and plugged in some of my code. Within less than an hour I had my code running on localhost the way I wanted!
The author is extremely knowledgeable about Docker and takes the time to point out many gotchas along the way in footnotes. I appreciated this attention to detail. He also evaluates a lot of addons and tools that work with Docker, and the trade-offs were presented well explaining exactly why you would use one tool over another. At points he mentions which technologies are still evolving, and where to check for updates.
The last few chapters in this book were heavily into the networking side of things. Some of the material was quite advanced information about production systems.
One minor issue with this book is that there are quite a few typos. I noticed one spelled "oen", and chapter spelled "chpater" in the book. Also, there was one place where "was were" was in a sentence, along with a few sentences not starting with capitals... I was seriously wondering how a spell checker did not catch these. I am still giving a 5-star rating though because the author's examples happened to be in the programming language I am using with an example to do exactly what I wanted. Additionally, I am happy to see how recent the information in this book is, even if it means there will be typos.
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: [...]. Feel free to pass by and share your thoughts!