Book Review: Docker Containers – Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic
After the virtualization buzz, the industry is actively looking for the next big thing. The container technology just came in at the right timing. Docker is the clear leader in the container technology, followed by CoreOS Rocket and RancherOS today.
I started to watch Docker when it first came out, and realized its great potential to disrupt VMware’s stronghold in enterprise IT. There are two factors that have contributed to Docker’s success: first of all, it’s an open source software that everyone can benefit immediately; secondly, it has done a great job in productising and promoting the technology to the tech world. Along the way, I had played with Docker directly on Linux and then on VMware’s Photon.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
When asked for reviewing a Docker book “Docker Containers (includes Content Update Program): Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic (Negus Live Linux)” by Prentice Hall, I replied yes immediately. The book is authored by Christopher Negus with William Henry and well exceeds my expectation even though I am not new to Docker.
Christopher is a very well-known author who had written dozens of books about Linux and open source software. His Linux Bible is now in its 9th edition, and one of the top selling Linux books today. With that background, you can expect an easy to follow style in this Docker book.
The book assumes no knowledge of container or Docker at all. It offers excellent explanation about the container knowledge and very detailed description on how to install initial Docker environment on various Linux distributions like CentOS, Ubuntu, etc. Once the Docker environment is set up, the rest is pretty much the same.
The author divides the book into 5 parts: “Getting going with the containers,” “Working with Individual Containers,” “Running Containers in Cloud Environments,” “Managing Multiple Containers,” “Developing Containers.” Each part consists of a few chapters. Depending on your needs, you skip some part of the books. I actually read the book cover to cover. That helped me to refresh my memories on the docker commands and things to watch out. I also learned a few things that I didn’t pay enough attentions to before. For example, the –rm switch on the docker run command will remove the container upon exiting the container thus help avoid too many stopped containers in the system which are mostly never used again.
For the advanced users, the storage and networking part is very helpful. At nowhere can you find all the information in one place and organized in a systematic way. To make useful of the containers, networking is a must but also potentially confusing for users. That chapter “configuring container networking” alone worths the money for the book.
In real production system, no one uses Docker in isolated host even though you could. So you would need management tools like Kubernetes which is an open source project from Google. The part 4 “Managing Multiple Containers” has two chapters covers that in details.
The last part is about building containers with dockerfile. As a developer, I found that is very useful and think we may package our vSearch product with containers. There are many tips on simplifying and optimizing the build process.
After reading the book by myself, I found the book is invaluable in learning and mastering Docker, thus highly recommend it to you all.