Docker won't be going it alone. Leading cloud providers Alibaba Cloud, Amazon Web Service (AWS), Google Cloud, IBM Bluemix, and Microsoft Azure are committing to providing maintainers and contributors to the project.
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.
Still, Hykes' plans for containerd sounds bigger than just dull plumbing. Hykes wrote, "We will add more Docker Engine functionality to containerd so that containerd 1.0 will provide all the core primitives you need to manage containers with parity on Linux and Windows hosts." These will be:
- Container execution and supervision
- Image distribution
- Network Interfaces Management
- Local storage
- Native plumbing level API
- Full OCI support, including the extended OCI image specification
That first part is the main reason why Docker is doing this. Kubernetes is quickly becoming the most popular container management program. Docker needs to find more supporters for its Docker Engine management approach.
At least one analyst approves of Docker's containerd dream. Fintan Ryan, a RedMonk industry analyst, said in a statement:
In donating containerd to the container ecosystem Docker are providing standardized core components for the wider community to build upon. This standardized core gives developers reassurance in their technology choice by ensuring a stable and compatible experience across any infrastructure.
Want to check it out? There is no containerd foundation yet. That won't happen until the first quarter of 2017. But, the containerd repository is open today, along with its roadmap, scope table, architecture plan, and draft application programming interfaces (API)s.