If you’ve been following the rise of Docker and containers, you’ll notice that the messaging on the Docker website has gradually shifted from headlines about what containers are to a focus on the services provided by Docker as a company over the last few years.
One of the main reasons for this is that everything has traditionally been referred to as ‘Docker,’ which can be confusing. Now that people didn’t need to be taught as much about what a container is or how to use Docker to solve problems, the company needed to start differentiating itself from competitors who had sprung up to support a variety of container technologies.
So, let us attempt to unpack everything that is Docker, which includes the following:
- Open-source projects: There are several open-source projects started by Docker, which are now maintained by a large developer community.
- 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.
In a later post, we will also look at some third-party services. In the meantime, let’s go over each of these in greater depth, beginning with the open source projects.
Open-source DevOps 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.
Docker, Inc. is the company that created Docker Community Edition (Docker CE) and Docker Enterprise Edition (Docker EE) (Docker EE). It also used to provide SLA-based support for Docker EE as part of Docker’s Modernise Traditional Apps (MTA) programme. CD Cloud Logix provides consulting services to companies looking to containerize their existing applications.
You’ll notice that I used the past tense to refer to a lot of the things in the previous sentence. This is due to the fact that Docker, Inc. restructured and sold its platform business to Mirantis Inc. in November 2019. Docker, Inc. sold the following assets to them:
- Docker Enterprise, including Docker EE
- Docker Trusted Registry
- Docker Unified Control Plane
- Docker CLI
Mirantis Inc. is a company based in California that specializes in the development and support of OpenStack and Kubernetes-based solutions. It was one of the founding members of the non-profit corporation OpenStack Foundation and had extensive experience providing enterprise-level support.
‘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.’Former Docker, Inc. CEO Rob Bearden
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 future posts. Before we finish this post, 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. There are currently two versions of Docker Engine; there is Docker EE, which is now maintained by Mirantis Inc., and Docker CE.
Docker will provide nightly builds of the Docker Engine via a nightly repository (formerly Docker CE Edge), as well as monthly builds of Docker for Mac and Docker for Windows via the Edge channel, in addition to the stable version of Docker CE.
There are also the following tools:
Docker Compose: A tool that allows you to define and share multi-container
Docker Machine: A tool to launch Docker hosts on multiple platforms.
Docker Hub: A repository for your Docker images.
Docker Desktop (Mac)
Docker Desk/top (Windows)
Docker Swarm: A multi-host-aware orchestration tool.
In this post, we talked about the Docker ecosystem and the roles of the various tools.