Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering Docker, Fourth Edition

You're reading from   Mastering Docker, Fourth Edition Enhance your containerization and DevOps skills to deliver production-ready applications

Arrow left icon
Product type Paperback
Published in Oct 2020
Publisher Packt
ISBN-13 9781839216572
Length 568 pages
Edition 4th Edition
Tools
Arrow right icon
Author (1):
Arrow left icon
Russ McKendrick Russ McKendrick
Author Profile Icon Russ McKendrick
Russ McKendrick
Arrow right icon
View More author details
Toc

Table of Contents (22) Chapters Close

Preface 1. Section 1: Getting Up and Running with Docker
2. Chapter 1: Docker Overview FREE CHAPTER 3. Chapter 2: Building Container Images 4. Chapter 3: Storing and Distributing Images 5. Chapter 4: Managing Containers 6. Chapter 5: Docker Compose 7. Chapter 6: Docker Machine, Vagrant, and Multipass 8. Section 2: Clusters and Clouds
9. Chapter 7: Moving from Linux to Windows Containers 10. Chapter 8: Clustering with Docker Swarm 11. Chapter 9: Portainer – A GUI for Docker 12. Chapter 10: Running Docker in Public Clouds 13. Chapter 11: Docker and Kubernetes 14. Chapter 12: Discovering other Kubernetes options 15. Chapter 13: Running Kubernetes in Public Clouds 16. Section 3: Best Practices
17. Chapter 14: Docker Security 18. Chapter 15: Docker Workflows 19. Chapter 16: Next Steps with Docker 20. Assessments 21. Other Books You May Enjoy

Docker and the container ecosystem

If you have been following the rise of Docker and containers, you will have noticed that, throughout the last few years, the messaging on the Docker website has been slowly changing from headlines about what containers are to more of a focus on the services provided by Docker as a company.

One of the core drivers for this is that everything has traditionally been lumped into being known just as 'Docker,' which can get confusing. Now that people did not need educating as much on what a container is or the problems they can solve with Docker, the company needed to try and start to differentiate themselves from competitors that sprung up to support all sorts of container technologies.

So, let's try and unpack everything that is Docker, which involves the following:

  • Open source projects: There are several open source projects started by Docker, which are now maintained by a large community of developers.
  • Docker, Inc.: This is the company founded to support and develop the core Docker tools.
  • Docker CE and Docker EE: This is the core collection of Docker tools built on top of the open source components.

We will also be looking at some third-party services in later chapters. In the meantime, let's go into more detail on each of these, starting with the open source projects.

Open source projects

Docker, Inc. has spent the last few years open sourcing and donating a lot of its core projects to various open source foundations and communities. These projects include the following:

  • Moby Project is the upstream project upon which the Docker Engine is based. It provides all of the components needed to assemble a fully functional container system.
  • Runc is a command-line interface for creating and configuring containers and has been built to the OCI specification.
  • Containerd is an easily embeddable container runtime. It is also a core component of the Moby Project.
  • LibNetwork is a Go library that provides networking for containers. Notary is a client and server that aims to provide a trust system for signed container images.
  • HyperKit is a toolkit that allows you to embed hypervisor capabilities into your own applications; presently, it only supports the macOS and the Hypervisor framework.
  • VPNKit provides VPN functionality to HyperKit.
  • DataKit allows you to orchestrate application data using a Git-like workflow.
  • SwarmKit is a toolkit that enables you to build distributed systems using the same raft consensus algorithm as Docker Swarm.
  • LinuxKit is a framework that allows you to develop and compile a small portable Linux operating system for running containers.
  • InfraKit is a collection of tools that you can use to define the infrastructure to run your LinuxKit generated distributions on.

On their own, you will probably never use the individual components; however, each of the projects mentioned is a component of the tools that are maintained by Docker, Inc. We will go a little more into these projects in our final chapter.

Docker, Inc.

Docker, Inc. is the company formed to initially develop Docker Community Edition (Docker CE) and Docker Enterprise Edition (Docker EE). It also used to provide an SLA-based support service for Docker EE as well as offering consulting services to companies who wish to take their existing applications and containerize them as part of Docker's Modernise Traditional Apps (MTA) program.

You will notice that I referred to a lot of the things in the previous sentence in the past tense. This is because in November 2019 Docker, Inc. restructured and sold its platform business to a company called Mirantis Inc. They acquired the following assets from Docker, Inc.:

  • Docker Enterprise, including Docker EE
  • Docker Trusted Registry
  • Docker Unified Control Plane
  • Docker CLI

Mirantis Inc. is a California-based company that focuses on the development and support of OpenStack- and Kubernetes-based solutions. It was one of the founders of the non-profit corporate entity OpenStack Foundation and had a vast amount of experience of providing enterprise-level support.

Former Docker, Inc. CEO Rob Bearden, who stepped down shortly after the announcement, was quoted as saying:

'After conducting thorough analysis with the management team and the Board of Directors, we determined that Docker had two very distinct and different businesses: one an active developer business, and the other a growing enterprise business. We also found that the product and the financial models were vastly different. This led to the decision to restructure the company and separate the two businesses, which is the best thing for customers and to enable Docker's industry-leading technology to thrive.'

With the Enterprise business now with Mirantis Inc., Docker, Inc. is focusing on providing better developer workflows with Docker Desktop and Docker Hub, which allows users to avoid the threat of vendor lock-in.

Docker CE and Docker EE

There are a lot of tools supplied and supported by Docker, Inc. Some we have already mentioned, and others we will cover in later chapters. Before we finish this, our first chapter, we should get an idea of the tools we are going to be using. The most of important of them is the core Docker Engine.

This is the core of Docker, and all of the other tools that we will be covering use it. We have already been using it as we installed it in the Docker installation and Docker commands sections of this chapter. There are currently two versions of Docker Engine; there is Docker EE, which is now maintained by Mirantis Inc., and Docker CE. We will be using Docker CE throughout this book.

As well as the stable version of Docker CE, Docker will be providing nightly builds of the Docker Engine via a nightly repository (formally Docker CE Edge), and monthly builds of Docker for Mac and Docker for Windows via the Edge channel.

There are also the following tools:

  • Docker Compose: A tool that allows you to define and share multi-container definitions; it is detailed in Chapter 5, Docker Compose.
  • Docker Machine: A tool to launch Docker hosts on multiple platforms; we will cover this in Chapter 6, Managing Containers.
  • Docker Hub: A repository for your Docker images, covered in the next three chapters.
  • Docker Desktop (Mac): We have covered Docker for Mac in this chapter.
  • Docker Desk/top (Windows): We have covered Docker for Windows in this chapter.
  • Docker Swarm: A multi-host-aware orchestration tool, covered in detail in Chapter 8, Docker Swarm. Mirantis Inc now maintains this.
You have been reading a chapter from
Mastering Docker, Fourth Edition - Fourth Edition
Published in: Oct 2020
Publisher: Packt
ISBN-13: 9781839216572
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at ₹800/month. Cancel anytime