Review of the book “Docker. Introductory course. 3rd edition”

Docker: Up & Running, 3rd Edition in epub format. If desired, this file can be easily convert to pdfif you prefer to read in this format.

Who is this book for?

Sean Kane and Carl Matthias are seasoned IT professionals whose diverse knowledge and extensive experience have enabled them to create a comprehensive guide to Docker.

Sean Kane is the founder of techlabs.sh and the Production Operations Lead at SuperOrbital. He specializes in developing, teaching, and writing about modern DevOps processes, including Kubernetes, Docker, Terraform, and other technologies. Sean is the lead inventor of a container-related patent and spends much of his free time writing, teaching, and speaking on technology topics.

Carl Matthias is the VP of Architecture at Community.com. Prior to that, he worked at several large technology companies, where he held a variety of senior engineering and management positions over a period of over 25 years. Carl specializes in distributed systems, the Go, Ruby, and Elixir programming languages, scalable data stores, automated infrastructure, and reproducible systems.

Now about who the authors and the publisher see as readers of this book. In short, everyone who wants to master and effectively apply Docker and containerization in their work.

First of all, this book will be useful for the following readers:

1. Developerm who want to improve the way they develop and deploy their applications using containers.

2. For system administratorsseeking to optimize infrastructure management and improve its efficiency.

3. For DevOps engineersinterested in improving continuous integration and delivery (CI/CD) processes using Docker.

4. For architects software developers planning to implement container technologies across an organization.

5. For SaaS/PaaS specialistsworking with services integrated with Docker and Kubernetes.

6. Students of technical universities, students of IT courses and juniors in the broad sense of this term, who want to gain fundamental knowledge about modern containerization technologies.

A couple of opinions about the book from readers on Amazon

This time there will be no section on the pros and cons of the book – it is better to read the live reviews of experienced specialists left on the book's Amazon pageto get advice on whether to buy this book or not.

  • Evan Volgas: “This book is suitable for both beginners and advanced users. Each chapter is full of useful information, and the depth of detail increases pleasantly as you read the book.

    I wish the author spent more time on using cloud services like EKS and CloudRun. There is a chapter on EKS, but the concepts and command line calls are only superficially explained. This is in stark contrast to the rest of the book, which covers everything in detail. If the author had revised this chapter and maybe added two more chapters for GCS and Azure, this book would have easily gotten 5 stars. As it is, this is a solid 4 star book with a lot of great material for both new and experienced Docker users.”

  • Yifan Yang: “I don’t think the book is suitable for complete beginners, some examples (in my opinion) are not explained well enough for people without Docker experience. In my opinion, the target audience of this book is mid-level DevOps engineers.”

What's interesting about the chapters

For some strange reason, we couldn't find the table of contents of the Russian edition on the BHV publishing house website in the form of a trial PDF fragment, as is their custom. But we did find this table of contents to Ozone (by the way, the book is noticeably more expensive there).

The English table of contents is on the website O'REILLYand also in the free version of this book on the ebin.pub website, which we mentioned above.

Now let's go through the chapters – it may seem a little boring, but you will have an understanding of the whole topic, as if you analyzed the content of the chapters and made a summary:

Chapter 1. Introduction

In this chapter, the authors introduce the concept of Docker, explaining its benefits and potential impact on software development and deployment. They discuss key benefits of the Docker workflow, including simplifying application deployment and scaling. They also clarify the scope of Docker to avoid common misconceptions. The chapter concludes with a list of important terminology relevant to the book's topic.

Chapter 2. Docker Landscape

This chapter dives into the Docker ecosystem, explaining how it simplifies development and deployment processes. The widespread support and adoption of Docker in the industry is discussed. The Docker architecture is covered, including the client-server model, networking aspects, and the difference from virtual machines. The authors describe the main Docker tools and explain how to get the most out of using containers. The chapter also covers the concept of immutable infrastructure and the importance of building stateless applications when working with Docker.

Chapter 3. Installing Docker

This chapter takes a detailed look at installing Docker on various operating systems. It covers installing the Docker client on Linux, macOS, and Windows, as well as installing the Docker server on systemd-based systems and non-Linux machines. The authors provide step-by-step instructions for testing the installation on various Linux distributions, including Ubuntu, Fedora, and Alpine Linux. The chapter concludes with an overview of the main components of the Docker server.

Chapter 4: Working with Docker Images

The chapter begins by explaining the anatomy of a Dockerfile and the image build process. Topics include running images, using build arguments, and using environment variables for configuration. Creating custom base images and storing images in public and private registries are discussed. The authors provide tips for optimizing images, including minimizing their size and using layers efficiently. The chapter also covers troubleshooting build issues and creating multi-architecture images.

Chapter 5. Working with containers

This chapter delves into the concept of containers, starting with a brief history of containerization technology. It covers in detail the process of creating, configuring, and managing containers, including the use of storage volumes and resource quotas. Various container operations, such as starting, stopping, destroying, pausing, and resuming, are discussed. The authors also explain how to configure automatic container restarts and how to effectively clean up unused containers and images. The chapter concludes with a brief overview of Windows containers.

Chapter 6. Collecting information in Docker

This chapter covers various tools and commands for exploring and monitoring a Docker environment. The authors explain how to get information about the Docker version and server, how to update images, and inspect containers. Methods for accessing and managing running containers are discussed. The chapter also covers logging, monitoring container statistics, and checking container health. Advanced monitoring tools such as cAdvisor and Prometheus are covered.

Chapter 7. Debugging Containers

This chapter focuses on methods and tools for debugging Docker containers. The authors explain how to analyze process output, inspect running processes, and control them. They cover ways to examine container network configurations and image history. The chapter also covers methods for inspecting a container's filesystem, which is useful for troubleshooting. These debugging techniques help developers and operators effectively diagnose and resolve issues in containerized applications.

Chapter 8. Docker Compose

This chapter introduces Docker Compose, a tool for defining and managing multi-container applications. The authors explain how to configure and use Docker Compose to launch services. The Rocket.Chat application is used as an example to demonstrate the capabilities of Docker Compose. Various aspects of configuration management are discussed, including working with default values, required values, and .env files. This chapter helps readers understand how to effectively organize and manage complex applications with multiple interconnected containers.

Chapter 9. Containers and Production

This chapter focuses on preparing containers for use in production. Key aspects such as job management, resource limiting, networking, and configuration are covered. Packaging and shipping containers are discussed, as well as logging and monitoring. The authors also touch on service scheduling and discovery. The chapter concludes with an overview of Docker's role in a DevOps pipeline, demonstrating how containers can improve the process of developing and deploying applications.

Chapter 10. Scaling Containers

This chapter covers various platforms and tools for managing containers in large-scale environments. The Docker Swarm mode for container orchestration is discussed. Significant attention is paid to Kubernetes, a popular platform for automating the deployment, scaling, and management of containerized applications. The authors also cover Amazon ECS and Fargate, providing instructions on how to configure and use these AWS services for container management. The chapter helps readers understand how to effectively scale containerized applications in different environments.

Chapter 11. Advanced Concepts (Advanced Topics)

This chapter delves into the technical details of how containers work, including the use of cgroups and namespaces. Security aspects such as running with UID 0, privileged containers, and secure compute mode are covered. Configuration of the Docker daemon and advanced networking and storage settings are discussed. The authors also look at tools for debugging containers without a shell and the possibility of replacing the Docker runtime. The chapter concludes with an overview of gVisor, Google's container runtime sandbox.

Chapter 12. Ecosystem

This chapter explores alternative tools and technologies that complement or compete with Docker. It discusses client tools such as nerdctl, podman, and buildah that offer alternative ways to work with containers. The authors also describe comprehensive developer tools, including Rancher Desktop and Podman Desktop, which provide integrated environments for working with containers. This chapter helps readers understand the diversity of the container ecosystem and choose the most appropriate tools for their needs.

Chapter 13. Designing a Container Platform

This chapter focuses on principles for designing effective containerized applications. It covers the Twelve-Factor App methodology, which offers a set of best practices for building scalable and maintainable applications. The authors also discuss the Reactive Manifesto, explaining how the principles of responsiveness, resilience, elasticity, and message orientation apply to containerized applications. This chapter provides readers with valuable guidance on designing robust and effective container platforms.

Chapter 14. Final

In the final chapter, the authors wrap up the book and look at the future of container technology. They discuss the problems that Docker solves and the benefits of a container-based workflow. Key aspects such as minimizing deployment artifacts and optimizing data storage and retrieval are covered. The authors highlight the benefits of using Docker and containerization in general, giving readers an understanding of how these technologies can improve software development and deployment processes.

Conclusion

Very few translated books on Docker have been published in Russia, and they are quite fresh and have relevant content. In our opinion, despite only 4 stars on Amazon, it is still worth buying the book – money invested in knowledge and personal competencies always pays off.

The combination of Sean Kane's deep technical knowledge of DevOps and containerization with Carl Matthias's extensive experience in software architecture and development makes them highly qualified authors to create this theoretical and practical guide to Docker.

Let's add a drop of advertising from our blog: SSP SOFT invites QA and DevOps engineers, systems analysts, data analysts, Java, JS, React and Python developers, 1C — see. page on hh.ru. If your specialty is not listed in the current vacancies, please send your resume anyway, as new positions in the teams open up weekly (write to Telegram or by email job@ssp-soft.com).

Good luck in learning and using Docker!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *