<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <link href="https://blog.jaysinh.dev/tags/docker/feed.xml" rel="self" type="application/atom+xml"/> <link href="https://blog.jaysinh.dev/" rel="alternate" type="text/html"/> <updated>2026-08-01T12:49:14+00:00</updated> <id>https://blog.jaysinh.dev/</id> <title type="html">Jaysinh’s own heed</title> <subtitle>I am a Full-stack developer by profession, Computer scientist by heart and an Actor by gene. I write mostly on programming topics. Browse through my blog posts to identify my taste of writing. </subtitle> <entry> <title type="html">Book review ‘Docker Up &amp;amp; Running’</title> <link href="https://blog.jaysinh.dev/2017/12/05/book-review-docker-up-running.html" rel="alternate" type="text/html" title="Book review &apos;Docker Up &amp; Running&apos;"/> <published>2017-12-05T05:56:32+00:00</published> <updated>2017-12-05T05:56:32+00:00</updated> <id>https://blog.jaysinh.dev/2017/12/05/book-review-docker-up-running</id> <content type="html" xml:base="https://blog.jaysinh.dev/2017/12/05/book-review-docker-up-running.html">&lt;p&gt;&lt;img src=&quot;https://blog.jaysinh.dev/assets/images/book_review_docker_up_and_running/main.jpg&quot; alt=&quot;book image docker up and running&quot; /&gt;&lt;/p&gt; &lt;p&gt;In the modern era of software engineering, terms are coined with a new wrapper. Such wrappers are required to make bread-and-butter out of it. Sometimes good marketed terms are adopted as best practices. I was having a lot of confusion about this Docker technology. Even I was unfamiliar with the concept of containers. My certain goal was to get a higher level overview first and then come to a conclusion. I started reading about the Docker from its official getting started guide. It helped me to host this blog using Docker, but I was expecting some more in-depth overview. With that reason, I decided to look for better resources. By reading some Quora posts and Goodreads reviews, I decided to read “Docker Up &amp;amp; Running by K. Matthias and S. Kane”. I am sharing my reading experience here.&lt;/p&gt; &lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt; &lt;p&gt;The book provides a nice overview of Docker toolchain. It is not a reference book. Even though few options are deprecated, I will advise you to read this book and then refer the &lt;a href=&quot;https://docs.docker.com/&quot;&gt;official documentation&lt;/a&gt; to get familiar with the latest development.&lt;/p&gt; &lt;h2 id=&quot;detailed-overview&quot;&gt;Detailed overview&lt;/h2&gt; &lt;p&gt;I got a printed copy at nearly 450 INR (roughly rounding to 7 USD, where 1 USD = 65 INR) from &lt;a href=&quot;https://www.amazon.in/&quot;&gt;Amazon&lt;/a&gt;. The prize is fairly acceptable with respect to the print quality. The book begins with a little history of containers (Docker is an implementation of the container). Initial chapters give a higher level overview of Docker tools combining Docker engine, Docker image, Docker registry, Docker compose and Docker container. Authors have pointed out situations where Docker is not suitable. I insist you do not skip that topic. I skipped the dedicated chapter on installing Docker. I will advise you to skip irrelevant topics because the chapters are not interlinked. You should read chapter 5 discussing the behavior of the container. That chapter cleared many of my confusions. Somehow I got lost in between, but re-reading helped. Such chapters are enough to get a general idea about Docker containers and images. Next chapters are focused more on best practices to setup the Docker engine. Frankly, I was not aware of possible ways to debug, log or monitor containers at runtime. This book points few expected production glitches that you should keep in mind. I didn’t like the depicted testing workflow by authors. I will look for some other references which highlight more strategies to construct your test workflow. If you are aware of any, please share them with me via e-mail. I know about achieving auto-scaling using various orchestration tools. This book provides step by step guidance on configuring and using them. Mentioned tools are &lt;a href=&quot;https://github.com/docker/swarm&quot;&gt;Docker Swarm&lt;/a&gt;, &lt;a href=&quot;https://github.com/newrelic/centurion&quot;&gt;Centurion&lt;/a&gt; and &lt;a href=&quot;https://aws.amazon.com/ecs/&quot;&gt;Amazon EC2 container service&lt;/a&gt;. Unfortunately, the book is missing &lt;a href=&quot;https://kubernetes.io/&quot;&gt;Kubernets&lt;/a&gt; and &lt;a href=&quot;https://github.com/spotify/helios&quot;&gt;Helios&lt;/a&gt; here. As a part of advanced topics, you will find a comparison of various filesystems with a shallow overview of how Docker engine interacts with them. The same chapter is discussing available execution drivers and introduces &lt;a href=&quot;https://linuxcontainers.org/&quot;&gt;LXC&lt;/a&gt; as another container technology. This API option is deprecated by &lt;a href=&quot;https://github.com/moby/moby/blob/master/CHANGELOG.md#180-2015-08-11&quot;&gt;Docker version 1.8&lt;/a&gt; which makes &lt;a href=&quot;https://github.com/docker/libcontainer&quot;&gt;libcontainer&lt;/a&gt; the only dependency. I learned how Docker containers provide the virtualization layer using &lt;a href=&quot;https://en.wikipedia.org/wiki/Linux_namespaces&quot;&gt;Namespaces&lt;/a&gt;. Docker limits the execution of container using &lt;a href=&quot;https://en.wikipedia.org/wiki/Cgroups&quot;&gt;CGroups (Control Groups)&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/Linux_namespaces&quot;&gt;Namespaces&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Cgroups&quot;&gt;CGroups&lt;/a&gt; are GNU/Linux level dependencies used by Docker under the hood. If you are an API developer, then you should not skip Chapter 11. This chapter discusses two well-followed patterns &lt;a href=&quot;https://12factor.net/&quot;&gt;Twelve-Factor App&lt;/a&gt; and &lt;a href=&quot;https://www.reactivemanifesto.org/&quot;&gt;The Reactive manifesto&lt;/a&gt;. These guidelines are helpful while designing the architecture of your services. The book concludes with further challenges of using Docker as a container tool.&lt;/p&gt; &lt;p&gt;One typo I found at page number 123, second last line.&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;expore some of the tools... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Here, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;expore&lt;/code&gt; is a typo and it should be&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;explore some of the tools... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;I have submitted it to the &lt;a href=&quot;http://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920036142&quot;&gt;official errata&lt;/a&gt;. At the time of writing this post, it has not confirmed by authors. Hope they will confirm it soon.&lt;/p&gt; &lt;h3 id=&quot;who-should-read-this-book&quot;&gt;Who should read this book?&lt;/h3&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Developers who want to get an in-depth overview of the Docker technology.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;If you set up deployment clusters using Docker, then this book will help you to get an overview of Docker engine internals. You will find security and performance guidelines.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;This is not a reference book. If you are well familiar with Docker, then this book will not be useful. In that case, the Docker documentation is the best reference.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;I assume Docker was not supporting Windows platform natively when the book was written. The book focuses on GNU/Linux platform. It highlights ways to run Docker on Windows using VMs and &lt;a href=&quot;http://boot2docker.io/&quot;&gt;Boot2Docker&lt;/a&gt; for Non-Linux VM-based servers.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;what-to-keep-in-mind&quot;&gt;What to keep in mind?&lt;/h3&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Docker is changing rapidly. There will be situations where mentioned options are deprecated. In such situation, you have to browse the latest Docker documentation and try to follow them.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;You will be able to understand the official documentation better after reading this book.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Your GNU/Linux skills are your Docker skills. Once you understand what the Docker is, then your decisions will become more mature.&lt;/li&gt; &lt;/ul&gt; &lt;h6 id=&quot;proofreaders-dhavan-vaidya-polprog&quot;&gt;Proofreaders: &lt;a href=&quot;http://codingquark.com/&quot;&gt;Dhavan Vaidya&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/channel/UCsxonLIUu9tB8QWNuFIXCwg/featured&quot;&gt;Polprog&lt;/a&gt;&lt;/h6&gt; &lt;h2 id=&quot;printed-copy&quot;&gt;Printed Copy&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://www.amazon.in/Docker-Up-Running-Karl-Matthias/dp/9352131320&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.flipkart.com/docker-up-running/p/itme8n74nhfg2wnm?pid=9789352131327&quot;&gt;Flipkart&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://shop.oreilly.com/product/0636920036142.do&quot;&gt;O’REILLY&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;</content> <author> <name>Jaysinh Shukla</name> </author> <category term="books"/> <category term="docker"/> <category term="linux"/> <summary type="html"></summary> </entry> </feed>