Containerd is essential to Docker Engine. It's been used in Docker since version 1.11. This new open-source version is meant to be used as an open, stable, and extensible base for building non-Docker products and container solutions.
Specifically, containerd can be used to transfer container images, container execution and supervision, low-level local storage, and network interfaces across both Linux and Windows. If this sounds familiar, it should. The Linux Foundation's Open Container Initiative (OCI) was meant to create a vendor-neutral container Runtime Specification and Image Specification.
Even though Docker is not releasing this project under the OCI, the company claims containerd fully leverages the OCI runtime, image format specifications, and OCI reference implementation (runC). Eventually, Docker plans to pursue OCI certification.
"This is the result of months of close collaboration and input from thought leaders in the Docker community," said Solomon Hykes, Docker's founder and CTO in a blog post. He continued:
We think it will unlock a whole new phase of innovation and growth across the entire ecosystem, which in turn will benefit every Docker developer and customer. Docker's focus has always been on solving users' problems first and then spinning out the plumbing projects that address those challenges along the way. We are excited by the support that the containerd project is getting from the leaders in the industry and we know their backing of resources will fuel the growth of this collaborative project.
In the case of containerd, the plan is to make sure it has limited feature scope. The goal is to create a "boring" infrastructure plumbing component shared across all container systems and leading orchestrators. The project will follow a community-defined release process that emphasizes quality over new features and will be branded separately from Docker to avoid undue benefit from a single commercial entity.