Jump to ratings and reviews
Rate this book

The first revision of this book Docker

Rate this book
Paperback. Pub 2016-04-01 264 Chinese People Post Press Docker is an open source application container engine. developers can take advantage of Docker packaged applications and their dependencies into a portable container then posted to any of the popular Linux machines can also be virtualized. The book was written by James Turnbull former vice president of service and support Docker company. Docker Development Guide. This book focuses on Docker 1.9 and above. Docker guide the reader to complete the installation. deployment. management and expansion. leading the reader through from test to production of the entire development life cycle. allowing the reader to understand what applies to Docker scene. The book first describes the basics of Docker and its components. and then introduces built with Docker containers and services to accomplish a...

Paperback

First published July 12, 2014

354 people are currently reading
652 people want to read

About the author

James Turnbull

50 books41 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
186 (25%)
4 stars
344 (47%)
3 stars
159 (21%)
2 stars
29 (3%)
1 star
8 (1%)
Displaying 1 - 30 of 61 reviews
Profile Image for Jelena K.
13 reviews
October 9, 2014
Imagine that You have only two days to learn Docker from scratch. Sounds impossible? Oh no. This book is an excellent solution for widening Your knowledge.

You will follow best practices and also working with real examples. But there is one sad thing.. There are too much pages devoted to introduction and installation. I skipped at least 70 pages.. :)
Profile Image for Konstantin Root.
21 reviews9 followers
August 21, 2014
Highly recommended for anyone starting to use Docker - it will cover all aspects and will teach you to work with Docker *right way*.
Book is kept up-to-date with latest releases, at least right now ;)
Profile Image for César Bustíos.
322 reviews113 followers
June 6, 2017
Containerization is the new virtualization

Indeed, it is! Docker is a game-changer and an amazing tool we all should be taking advantage of. It completely changes the way we build and ship software.

James Turnbull did a great job at getting someone to learn Docker in a precise and concise way. It was a quick read, a great introduction full of examples and information. The downside is that most parts are already outdated (but that's my fault for waiting so much to read it).

Recommended.
Profile Image for Barack Liu.
598 reviews21 followers
December 18, 2023
497-The Docker Book-James Turnbull-Container-2014

Barack
2023/12/17


"The Docker Book", was first published in 2014. It is a book designed for system administrators, operations personnel, developers, and DevOps who are interested in deploying the open-source container service Docker. It explores how to complete installing, deploying, managing, and scaling Docker. It begins with an introduction to the basics of Docker and its components. Then start using Docker to build containers and services to perform various tasks. It introduces the development lifecycle from testing to production and learns where Docker fits and how it can make your life easier. It uses Docker to build a test environment for new projects, demonstrates how to integrate Docker with continuous integration workflows, and how to build application services and platforms. Finally, it shows how to use Docker's API and how to extend Docker yourself.

James Turnbull was born in Melbourne, Australia. He is a free software and open-source author and software developer. He lives in Brooklyn, New York, and serves as Smartrr VP of Product and Engineering and advisor to Access Now. Prior to that, he served as co-chair of the Velocity conference, led engineering at Sotheby's, served as a startup advocate at Microsoft, and was an Empatico Founder and CTO of Kickstarter Chief Technology Officer, Venmo VP of Engineering and VP of Services at Microsoft. Roustabout. He also serves as vice president of technical operations for open-source company Puppet Labs.

Containerization, in software engineering, is operating system-level virtualization or application-level virtualization across multiple network resources so that software applications can be run in isolated user spaces called containers in any cloud or non-cloud environment regardless of type or supplier. A container is basically a fully functional and portable cloud or non-cloud computing environment that surrounds an application and makes it independent of other environments running in parallel. Each container individually emulates a different software application and runs independent processes by bundling related configuration files, libraries, and dependencies. However, in general, multiple containers share a common operating system kernel (OS). In recent years, containerization technology has been adopted by Amazon Web Services, Microsoft Azure, Google Cloud Platform, and IBM Cloud computing platforms such as Cloud are widely adopted.

Docker was first released in March 2013. Docker is a set of platform-as-a-service (PaaS) products that use operating system-level virtualization to deliver software in packages called containers. The service is available in free and premium levels. The software that hosts the containers is called Docker Engine. It was first released in 2013 and developed by Docker, Inc. Docker is a tool for automating the deployment of applications in lightweight containers, allowing applications to work efficiently in isolation in different environments.

Table of Contents
1. The Docker Book
2. Introduction
3. Installing Docker
4. Getting Started with Docker
5. Working with Docker images and repositories
6. Testing with Docker
7. Building services with Docker
8. Docker Orchestration and Service Discovery
9. Using the Docker API


This book mainly discusses container technology, which is an efficient virtualization technology. Container virtualization is a virtualization technology performed at the operating system level. In contrast, Hypervisor technology is virtualization at the physical machine level. Container technology and Hypervisor technology each have advantages and disadvantages. A significant advantage of container technology is that it is based on operating system-level virtualization and therefore has less overhead than lower-level virtualization technologies. This means that with limited resources, we can create more virtual machines. However, the disadvantages of container technology also stem from its characteristics, which are relatively poor in flexibility. For example, if the server operating system is Ubuntu, you cannot create a virtual machine running a Windows operating system on it. Before the popularity of cloud computing, containers, a lightweight virtualization technology, were not very popular. However as cloud computing becomes a mainstream trend in the industry, this lower-cost technology begins to be favored by cloud service providers because it can support the operation of more virtual machines.

This book mainly discusses the concept of "container", which is derived from the container. Just like containers carry goods in international shipping and are shipped around the world, containers also carry software and services, whether they are web services, servers, or other types of software. Operations on containers, such as creation, deletion, copy, etc., are not affected by the loaded content. Docker is essentially an implementation of the container concept. When we talk about operating systems, we theoretically consider their functions such as resource scheduling, physical resource management, providing APIs to applications, etc. The specific implementation methods of these functions, such as Linux, MacOS, Windows, etc., are all different embodiments of these theories. In addition to Docker, there are other platforms and tools that provide container technology. For example, it is a task-oriented container engine, and LXC and LXD are container technologies under Linux. Container scheduling technology is not limited to Kubernetes. For example, Amazon EKS (a service provided by Amazon Web Services) is also a container orchestration service. Google Kubernetes Engine (GKE) is a container orchestration service on Google Cloud. Since Kubernetes was originally proposed by Google, it has good support for Kubernetes. Similarly, Azure Container Service (ACS), provided by Microsoft Azure, also supports container orchestration. To sum up, in order to efficiently utilize computing resources, we have developed cloud computing. In the process of cloud computing, in order to better manage computing resources, we use containerization technology. With the emergence of a large number of container clusters, the need for container orchestration technology has emerged. All of these technologies have multiple implementations and applications.

This book mainly introduces several core components of Docker technology: The first is native Linux support. Docker mainly runs on Linux systems, making full use of the core features of Linux. Second is the namespace (Namespace). This is a core concept of Docker, used to achieve isolation of different resources (such as networks, file systems, processes, etc.). This ensures independence and security between containers. Then there's file system isolation. Each container has its own root file system, ensuring isolation between file data. There is also Process Isolation. Each container runs in its own execution environment and does not affect each other. And Network Isolation. Different containers have different virtual network interfaces and IP addresses to ensure isolation between network activities. There is also Resource Allocation and Grouping. Resources (such as CPU, and memory) on the physical machine are allocated to different containers, ensuring effective management of resources. There is also a Copy-On-Write. The way the file system is created reduces hard disk usage and ensures efficient management of data. There is also log management (Logging). It is mainly used to collect the standard input and output information of the container to facilitate monitoring and debugging. There is also an interactive shell (Interactive Shell). The interactive shell provided by Docker allows users to interact directly with the container.

The first step to using Docker is to install it. Docker supports multiple platforms, primarily Linux, but it also runs on macOS and Windows. After installing Docker, users can take advantage of its features on different operating systems. After installing Docker, the next step is to ensure that the Docker Daemon is running properly. Daemon executes in the background and does not require direct user interaction and control. It primarily responds to network requests, hardware activity, or requests from other applications. This process is usually automatic and requires no user intervention. After completing the above two steps, users can start using Docker to create and manage containers. The life cycle management of containers includes creation, stopping, and deletion. Although most of the examples in the book focus on command-line operations, the latest version of Docker should also support a graphical management interface. When trying to create a container, Docker first looks for the required image locally, such as an Ubuntu image. If not found locally, it will be downloaded from Docker Hub. After downloading, Docker will create a container based on the image in the file system, including configuring the network IP address and bridge interface. The user also needs to decide what commands to run on the container, such as starting a bash session.

We can create Docker containers using the command line. These containers stop running when exiting from the shell. In order to keep the Docker container running, we can create a daemon container. After the Daemon container is created, the network address of the container (network address of localhost) is automatically generated and stored in the configuration file. We can view the logs of each process in Docker and the usage of Docker resources through the command line. This includes CPU, memory, network, and storage I/O usage by containers (such as daemon containers). These commands and functions are especially useful when there are multiple containers running on the same host (host). They help manage and monitor the performance and status of each container.
Profile Image for Good.
46 reviews
January 1, 2024
Completed book on 1 Jan, 2024, book was originally published on 2017, despite having a update gap of 6 year, book is true to its core value and docker, most of the teaching in the book is still relevant and github repo are still maintained. I was revising Docker after 5 year and must say that if i had this book in the first place, i would have much broader knowledge of Docker in my carrear journey .
Profile Image for Yiorgos Adamopoulos.
40 reviews11 followers
May 12, 2018
I am unsure as to how to characterize the book. The author makes an honest effort to make it a good introduction to a complex thing like docker is, but to me it is unclear who the audience is: System Administrators who need to learn the basics of docker containers and a bit of orchestration, or developers who need to learn to build systems to work with docker and have never seen it before?
Profile Image for Steve.
79 reviews26 followers
June 2, 2015
Project focused and highly detailed.
Profile Image for Kevin Lambert.
4 reviews1 follower
September 22, 2017
I highly recommend this book if you are new to Docker. When I started reading it, I had heard of Docker, but I didn't really have a grasp on what containerization was, or how it could be useful. This book changed that. It provided extremely useful hands-on examples of how to get Docker working and some of the many different use-cases for it. You will start by installing Docker, then building simple images and containers. You will learn how to connect your containers through Docker Networking. You'll learn how to connect volumes between your host and containers, then between containers and how that might be useful. One of my favorite projects was building a basic continuous integration server with a Jenkins container that spawns new containers, runs tests, then destroys those containers. There are a lot of really interesting projects that you will create that show how containerization can help you.

All of the examples come with very well-written instructions and screenshots. I ran my Docker host on an Ubuntu 16.04 VM in VirtualBox for Windows and only ran into a very small number of issues that weren't very difficult to troubleshoot (such as: depending on the Redis version in your container, it may or may not work with the "--protected-mode no" command). Having all of the examples work pretty much flawlessly is saying a lot for a book that was released in 2014 for such a rapidly evolving and growing technololy like Docker. That compatibility is largely because the author keeps the content up-to-date with frequent updates (five times so far in 2017 alone) so you can expect the content to be relevant no matter when you read it.

Bottom line: if you want to get up to speed quickly on Docker and get some hands-on experience with what it can do, this is a fantastic resource.
2 reviews4 followers
August 12, 2017
The book starts from how to install and configure the Docker Engine, proceeding with explanations of concepts involved and then explaining how to build/orchestrate your own containers.

Each covered Docker feature is explained and then demonstrated on an example guiding the reader through each step along the way. Covered topics include: essential Docker commands, working with Dockerfiles, Docker registries, dockerizing various [simple] applications which use other containerized services (e.g. Redis), building a multi-container CI/CD pipeline and orchestrating containers with Docker Swarm and Docker Compose.

Containerization examples can run on Windows/Linux/MacOS hosts and are easy to follow if one has basic familiarity with the Linux command line (since Ubuntu 16.04 is used as a base image), while the containerized applications are simple enough to understand for people with experience in imperative programming (even though they are written in various programming languages e.g. Ruby, Java, JavaScript).

All in all an excellent introductory Docker book, but if you're already experienced with Docker and are looking for production-ready container recipes/advice, you should probably look elsewhere.



Profile Image for Bruno.
12 reviews3 followers
December 2, 2018
I got the opportunity to work with Docker on my current job, so I needed a quick and practical introduction on the topic. James did a great job explaining the basic concepts with useful and "real world" examples.
Instead of going through thousands of outdated tutorials online, this book has everything you need with up2date content.
Profile Image for Leandro Melendez.
Author 1 book7 followers
August 1, 2023
Una guía rápida y práctica para entender este tema de los contenedores.
Leerlo en este 2023 hace sentir que el libro ya es algo viejo pues algunos conceptos ya han evolucionado bastante.
Pero de cualquier modo este libro es muy buen punto de partida para alguien ajeno a la tecnología de contenedores.
Profile Image for Vincent Zhu.
11 reviews1 follower
January 27, 2017
the primer and comprehensive book to get me into the wonderful ecosystem, I read it twice actually with latest revision, it's suitable for everyone who wants to apply docker in production and dev. Also, it's worthy for somebody who just want to keep relevant and updated.
1 review
November 15, 2017
Nice

The basics are very well explained . Initial chapters are too good. This book is one pit stop for learning the basics of Docker
Profile Image for Andrew George.
3 reviews2 followers
December 17, 2017
Got me started

A well written introduction to the world of Docker. I would recommend to anyone looking to move from VM based infrastructure.
Profile Image for Manuel Garcia.
208 reviews9 followers
March 18, 2018
Quite technical but a good guide / Lab to learn about containers and its orchestration. Better with a computer side.
Profile Image for Snorlax.
69 reviews2 followers
June 30, 2020
A good introduction book on docker, with hands-on examples and fundamental knowledge.
Profile Image for Madhukara.
Author 7 books5 followers
August 12, 2020
A good book to systematically run different ideas behind docker.
Profile Image for Xianshun Chen.
90 reviews4 followers
February 3, 2021
Bought this book to learn docker, totally worth the money. Just completed reading it and was already able to experiment the results on AWS EC2.
Profile Image for Enrique.
78 reviews
May 1, 2021
A very pragmatic and useful book. If you are running Docker apps this book is a must.
For example, the chapter about Docker networking helped me to finally understand how networking works.
23 reviews
February 4, 2022
Great book about every part of Docker. I would prefer more focus on best practices how to write Dockerfiles.
Profile Image for Nikolay.
2 reviews2 followers
February 3, 2017
Very good introduction to Docker with some concrete use cases you can apply in your everyday work.
Profile Image for Oleg Tolmashov.
23 reviews2 followers
July 21, 2019

To my mind, both theory and practice are perfectly balanced in this book.


At first, you get general information about docker and where it can be helpful. Afterward, you find out how to dockerize everything you see. When you have dockerized everything - you're told how to orchestrate it. Perfect!

Must read if you want to:
- find out how to easily set up docker for your project
- become a DevOps
- setup ci/cd in your project

This book has great examples including everything you'll need to know. That's why this book is strongly recommended if you're new to Docker.
Profile Image for Jascha.
151 reviews
May 17, 2015
Docker here, Docker there. Anyone keeping himself up to date with the latest bells and whistles has seen that blue whale logo and heard talking about containers. This increase in popularity resulted in Amazon itself offering EC2 instances with direct support for containers, as well as several titles dedicated to the subject hitting the shelves. Among them is The Docker Book by James Turnbull, a name that should ring the bell to anyone into Puppet and automation in general, a real gem for anyone willing to understand this brand new technology and its potential.

While it is true that the book requires the reader to know his way through Linux, it does not target a niche. On the contrary, anyone interested in automation, be he a sys admin, a DevOps or a SysOps, will definitely find himself comfortable with the book.

James covers it all. He starts with the very basics: what is Docker, how do containers differ from virtual machines and their role in the automation/continuous delivery scenario. From the very first pages you can see James’ willingness to teach readers, not to scare them off: he makes it so easy for anyone to understand what is an union mount, for example, one of the most important concepts in the Docker’s mechanics.

It’s hard to find something wrong with this text. The reader is slowly taken, with a learn by doing method, through the many different features of Docker. The passage from concept to concept is smooth. Each is concisely explained and comes with real world examples, examples that can also be downloaded from the public GitHub associated to the book. Right after the code, James goes step by step through it, explain what and why has just been done. Many notes warn the reader about pitfalls and caveats. They also give hints about ingenious ways to work around the problems the reader can get himself into.

The chapter about services is definitely my favorite one. Here the author combines many different technologies, such as Redis, Tomcat, Apache and/or Jekyll to show us the true power of Docker, as well as some of its most exciting features, such as shared persisting volumes and running Docker inside Docker.

I think that the reader gets the most of out this text if he’s willing to go even deeper, checking on the official documentation what has just been taught for more examples and options. Having a virtual machine with Docker installed ready to replicate the examples also helps a lot.

A great book. Strongly suggested to anyone into automation.

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 Shaun Mouton.
48 reviews1 follower
October 27, 2015
The Docker Book does a great job at a very difficult task - getting someone up and running with a set of technologies that's a very fast-moving target. I'm not one of the folks who ran Docker in production pre-1.0 (didn't have a good use case for it at the time) but I was testing it so much of the content is more than a little familiar to me. From that perspective, I understand the criticism that some folks have (that they would have liked a deeper dive). I'm not sure that any deep dive would remain relevant for long, and I'm fairly certain that this book is written to get someone from zero to implementation, or from sort-of-familiar to proficient, rather than from proficient to expert. For that, the official documentation and the code itself are much better references. I've already given or recommended the book to a few folks who've worked through the exercises to get themselves familiar with a few use cases, and it's worked admirably in that respect.
Profile Image for Mehdi  Khan.
7 reviews76 followers
October 13, 2017
Disappointingly introductory for (former) VP of Services of Docker Inc. as the author (but it was probably my fault because I bought the it few months after already running docker on production). The official documentation, webinars and blog posts from early adopters do the job of introducing docker fairly well.

Docker is interesting in a way that despite being quite new, the community came up with lots of good ideas and slightly different implementations of various parts, thanks to docker's pluggable architecture. In fact they are so many, you'll often get overwhelmed with dilemma of choices (anyone dealing with different storage drivers will know. Why would you use AUFS instead of Device Mapper/BTRFS/ZFS/vfs? What's the catch?). An opinionated official/expert's insight would probably be more helpful than yet another introductory piece on docker.
Profile Image for Vincent Stoessel.
613 reviews35 followers
September 24, 2015
This book suffers the same problem as any book on emerging technologies that it's already somewhat dated the moment it is printed on the paper. In spite of that I found this book an excellent starting point for learning my way around this wonderful "what old is new again" technology. Docker is more than just a few commands to learn, it's an rich ecosystem that facilitates granular application level deployment. To the Java veterans who are accustomed to the standard war/ear package and deploy to AWS model, this will be a new paradigm shift. One that better suits deployment of a more heterogeneous architecture of microservices. I'm really interested in using docker more for both professional and personal projects
Profile Image for Dave Golombek.
293 reviews15 followers
August 23, 2014
Quick read, I was mostly interested in his sections on running docker inside docker (Jenkins in base, then sub-dockers for running tests) and his thoughts on running distributed systems inside of docker containers. Everything here is pretty clear and concise, I thought his last chapter on securing access to containers was a bit of a mess, but that's not really his fault, but rather how complicated certs are to set up. I wish he'd talked more about service discovery with docker containers, especially in a multi-host system, but I guess that'd be more of a CoreOS/EtcD book rather than a Docker book.
Displaying 1 - 30 of 61 reviews

Can't find what you're looking for?

Get help and learn more about the design.