Docker is quickly changing the way that organizations are deploying software at scale. But understanding how Linux containers fit into your workflow—and getting the integration details right—are not trivial tasks. With this practical guide, you’ll learn how to use Docker to package your applications with all of their dependencies, and then test, ship, scale, and support your containers in production.
Two Lead Site Reliability Engineers at New Relic share much of what they have learned from using Docker in production since shortly after its initial release. Their goal is to help you reap the benefits of this technology while avoiding the many setbacks they experienced.
Learn how Docker simplifies dependency management and deployment workflow for your applications
Start working with Docker images, containers, and command line tools
Use practical techniques to deploy and test Docker-based Linux containers in production
Debug containers by understanding their composition and internal processes
Deploy production containers at scale inside your data center or cloud environment
Explore advanced Docker topics, including deployment tools, networking, orchestration, security, and configuration
The Birth of Docker
The Promise of Docker
What Docker Isn’t
Chapter 2Docker at a Glance
Broad Support and Adoption
Getting the Most from Docker
The Docker Workflow
Chapter 3Installing Docker
Test the Setup
Chapter 4Working with Docker Images
Anatomy of a Dockerfile
Building an Image
Running Your Image
Custom Base Images
Chapter 5Working with Docker Containers
What Are Containers?
Creating a Container
Starting a Container
Auto-Restarting a Container
Stopping a Container
Killing a Container
Pausing and Unpausing a Container
Cleaning Up Containers and Images
Chapter 6Exploring Dockert
Printing the Docker Version
Downloading Image Updates
Inspecting a Container
Getting Inside a Running Container
Exploring the Shell
Returning a Result
Chapter 7The Path to Production Containers
Chapter 8Debugging Containers
Inspecting a Container
Chapter 9Docker at Scale
Amazon EC2 Container Service
Chapter 10Advanced Topics
Containers in Detail
Chapter 11Designing Your Production Container Platform
Karl Matthias is a Principal Systems Engineer with Nitro Software. He has worked as a developer, systems administrator, and network engineer for everything from startups to Fortune 500 companies. After a few years at startups in Germany and the UK followed by a stint at home in Portland, Oregon, he and his family recently landed in Dublin, Ireland. When not devoting his time to things digital, he can be found herding his two daughters, shooting film with vintage cameras, or riding one of his bicycles.
Sean Kane is currently a Lead Site Reliability Engineer for the Shared Infrastructure Team at New Relic. He has had a long career in production operations, with many diverse roles, in a broad range of industries. He has spoken about subjects like alerting fatigue and hardware automation at various meet-ups and technical conferences, including Velocity.Sean spent most of his youth living overseas, and exploring what life has to offer, including graduating from the Ringling Brother & Barnum & Bailey Clown College, completing 2 summer internships with the US Central Intelligence Agency, and building the very first web site in the state of Alaska. He gratefully lives in the US Pacific Northwest with his wife and children and still loves traveling and still photography.
The animal on the cover of Docker: Up and Running is a blue whale (Balaenoptera musculus). Blue whales can grow up to 100 feet in length, and 200 tons in weight, making them the largest animals on Earth, and the largest animals to ever exist. At birth, a blue whale calf is as large as an adult hippopotamus, and can gain up to 200 pounds a day. When fully grown, blue whales are long and thin, with a small dorsal fin, two flippers at their side, and a horizontal tail, also known as a "fluke." Blue whales are named for their bluish-grey coloring.
Blue whales are migratory and can be found in every ocean. They generally feed in colder polar regions, and then head to warmer tropical waters to give birth. Blue whales usually travel alone or in pairs, and communicate through a series of complex vocalizations. As a member of the balaenopteridae or rorqual family, blue whales feed by straining their prey through bony plates in their mouth known as baleen. Their diet consists almost entirely of krill, a small crustacean similar to shrimp. They can eat up to 7,900 pounds of krill a day, and require 1.5 million kilocalories of energy every day. Because of their speed and size, blue whales have practically no natural predators.
Blue whales were once widespread, with a population estimated in the hundreds of thousands. While they were initially too large and fast for whalers to capture, the invention of the harpoon gun in the late 1800s enabled whalers to successfully hunt blue whales. Decades of whaling followed, causing a significant population decline. An international ban on the hunting of blue whales was enacted in 1966, allowing their numbers to recover, although they remain endangered.
Many of the animals on O'Reilly covers are endangered; all of them are important to the world. To learn more about how you can help, go to http://animals.oreilly.com.
The cover image is from British Quadrupeds. The cover fonts are URW Typewriter and Guardian Sans. The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed; and the code font is Dalton Maag's Ubuntu Mono.
This book is written with a very clear audience in mind. It is written as a hands on guide to the system administrator that is responsible to take in house developed software and deploy it as SaaS (software as a service) on a server farm. For this particular audience it is a good book. For this particular audience I would definitely recommend this book.
If you (like me) want to learn more about Docker to learn if/how you could use Docker for other tasks, this is not the correct book. There is useful information about Docker in the book, but it is not easily accessible as the book concentrates so much on deploying in house developed software as SaaS.
The first two chapters are just buzzwords and marketing jargon for Docker. The later chapters are much better. The book is well written, and the language used is easy to read.
Bottom Line No, I would not recommend this to a friend
I bought this book because I needed to get into Docker fast. I have read some stuff over the internet but I wasn't really "up and running" with the technology. This book filled all the gaps I had and covered topics that I didn't consider initially. As Docker is new technology and moves fast keep in mind that some of the used commands are deprecated but still useful.
Bottom Line Yes, I would recommend this to a friend
Docker so well explained that it even turned me into a Docke
By Just Jacek
from Warsaw, Poland
About Me Developer
Easy to understand
Comments about oreilly Docker: Up & Running:
tl;dr Read the book "Docker: Up & Running" not the review and you regret no moment. Highly recommended! The only wish after "Docker: Up & Running" — the book should be a chapter or two longer!
"Docker: Up & Running" was the first book I read about Docker itself and the entire Docker ecosystem. And, honestly, it's not a coincidence at all. O'Reilly has always amazed me how well organised their books were and the overall layout, chapters, fonts, material and authors have always been perfectly matched up. I expected no less from "Docker: Up and Running".
I read O'Reilly's "Docker: Up & Running" from cover to cover and I regret no moment.
I was an almost complete beginner in the space of Docker. "Almost" because I had already read up on Docker in the official documentation and in a couple of articles. I also met fantastic people (thanks Kamil!) who convinced me to spend far more time with the fantastic new technology. And it all happened in the year of Scala the programming language in my life when I promised myself to devote most of my professional time to Scala to get the gist of functional programming and other type-level tricks. Despite my age, 40+, I still think of myself more as a software developer that any other role in a development team. As luck would have it, the current project has drifted towards Docker to reap benefits of the promise of "continuous integration and deployment made easier with Docker". And so Docker turned into a very hot topic in the team. I had to catch up very quickly.
And "Docker: Up & Running" moved me past that introductory level in a smooth and pleasant way!
It worked out fabulously well that I even contributed my first images to build sbt — the Scala build tool — inside a Docker container (https://hub.docker.com/u/jaceklaskowski/) to have repeatable builds without expecting much from the build machine but Docker itself. I simply couldn't have imagined to have gotten more from the book. I think I can even explain Docker to others with ease (holding the book in my hands as a reference).
It was in "Docker: Up & Running" when I finally understood why Docker could be so useful and fast at the same time (in no particular order) — a container is simply a process running on the Docker host. It was not obvious to me, but thanks to the book I could finally get it, too! And you can do all Docker remotely using command line or REST API. Thanks Karl and Sean for explaining it all in such an engaging and concisely manner.
In "Docker: Up & Running" I found all I needed about Docker itself and the tooling around it, Swarm, Machine, Kubernetes, Amazon ECS including. The "tooling" part in which the tooling was explained was a bit flat so I have to look around for other books, but I finally know what I should be looking for instead of blindly picking material hoping to find the right one. The book guided me through the Docker ecosystem with enough details and paved the way to more advanced topics and tooling.
Happily, the authors ran Docker on Mac OS so I was at home since I'm also on Mac. Linux is an obvious choice for Docker due to how Docker works, so it was covered as well. Not that much about Docker on Windows. I did find a couple of typos, but they're so minor that either you won't notice them or they're not going to diminish the value of the book in any way.
Are you into Docker? Grab the book and spend a week of reading with "Docker: Up & Running"! You're surely going to miss it once over it.
On to reading Packt's Learning Docker. The plan is to read up all the books available about Docker and develop my own understanding of its applicability in software development gigs of mine. What should be the reading path you'd recommend?
Bottom Line Yes, I would recommend this to a friend
With more than a thousands contributors, and backed by colossi such as Google, Docker is by far this year's hottest topic and gained so much momentum that Amazon released containers' specific instances on AWS. Quite impressive, indeed, mainly considering it relies on technology that has been there, available to all of us, since years (Solaris jails anyone?). The revolution were not indeed the containers themeselves, but rather encapsulating the whole thing inside a blue smiling whale and making it easy for us all average human beings to take advantage of it and deploy containers with a couple of lines of code. Or less. In the last 12 months many books dedicated to Docker were released, confirming the interest of publishing companies in the business that moves around that whale. Good for us, since this means there is a lot to help us learn and get better! Among the books available is Docker: Up and Running, quite good pick for both enthusiasts and professionals that provides some very interesting material on advanced topics, mainly security.
I have been reading this book during commute, on my way to work. I am honest, after reading the official documentation, so complete and easy to follow that it is such an indispensable resource for anyone willing to learn more about Docker, I was not expecting much from these tiny 200 pages. I must admit that, despite trying to find as many cons as possible, I have reached the back cover with my notebook plenty of positives notes and several code snippets that I will jealously keep somewhere safe. What stands out is how concise the book is: a paragraph, a concept. Plain and simple. The reader is gradually taken from the very basics up to advanced topics (more on this in a minute) smoothly, with no abrupt changes of subject. The abundance of colorful schemas definitely helps the reader getting a better, clearer picture of the subject being discussed. The examples are well explained and easy to follow.
The best of the book is the part dedicated to security, no doubts. The authors dedicate lots of pages to make it clear that a container is just a process running on the host and that the root user in a container, is the root of the host itself, with all that comes with it. The risks and damages that creating containers with way too many privileges are both discussed and shown with plenty of examples. Tips are given to make containers safer and the world a better place.
A couple of words about the many warnings that we find throughout the text: very often, when explaining the different features of Docker, and the internals that make it all happen, the authors come up with a box containing no more than three or four lines, very small pieces of wisdom with helpful suggestions to save the enthusiast from common pitfalls.
To wrap it all up, a very good title for anyone interested in Docker, be it a DevOps or simply an enthusiast. While there are more user-friendly choices covering the basics (TURN), Docker: Up and Running is definitely suggested to anyone seriously interested in the blue whale, mainly for the chapters dedicated to security and the advanced topics in general.
Suggested readings: The Docker Book: an user friendly, concise introduction to Docker. While it does not cover many advanced topics, it's by far the best covering the basics. Docker Hands on: while not helpful to beginners, it offers the reader many advanced topics that can't be found anywhere else.
As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com. Feel free to pass by and share your thoughts!
Bottom Line Yes, I would recommend this to a friend