Today, we’re pleased to announce that containerd (pronounced Con-Tay-Ner-D), an industry-standard runtime for building container solutions, has reached its 1.0 milestone. From Docker’s announcement in December of last year that it was spinning out its core runtime to its donation to the CNCF in March 2017, the containerd project has experienced significant growth and progress over the past 12 months. Within both the Docker and Kubernetes communities, there has been a significant uptick in investment with contributions from independents and CNCF member companies alike including Docker, Google, NTT, IBM, Microsoft, AWS, ZTE, Huawei and ZJU.
Similarly, the maintainers have been working to add key functionality to containerd. The initial containerd donation included methods for:
- transferring container images,
- container execution and supervision,
- low-level local storage and network interfaces and
- the ability to work on both Linux, Windows and other platforms.
Additional work has been done to add a:
- complete storage and distribution system that supports both OCI and Docker image formats and
- robust events system
- A more sophisticated snapshot model to manage container filesystems
These changes helped the team build out a smaller interface for the snapshotters, while still fulfilling the requirements needed from things like a builder. It also reduces the amount of code needed, making it much easier to maintain in the long run.
The containerd 1.0 milestone comes after several months of in alpha and beta status, that allowed the team to implement many performance improvements: creation of a stress testing system, improvements in garbage collection and shim memory usage.
“In 2017 key functionality has been added containerd to address the needs of modern container platforms like Docker and orchestration systems like Kubernetes,” said Michael Crosby, Maintainer for containerd and engineer at Docker. “Since our announcement in December, we have been progressing the design of the project with the goal of making it easily embeddable in higher level systems to provide core container capabilities. We will continue to work with the community to create a runtime that’s lightweight yet powerful, balancing new functionality with the desire for code that is easy to support and maintain.”
containerd is already being used by Kubernetes for its cri-containerd project, which enables users to run Kubernetes clusters using containerd as the underlying runtime. containerd is also an essential upstream component of the Docker platform and is currently used by millions of end users. There is also strong alignment with other CNCF projects: containerd exposes an API using gRPC and exposes metrics in the Prometheus format. containerd also fully leverages the Open Container Initiative (OCI) runtime, image format specifications and OCI reference implementation (runC), and will pursue OCI certification when it is available.
Key Milestones in the progress to 1.0 include:
Notable containerd facts and figures:
- 1922 GitHub stars, 401 forks
- 108 contributors
- 8 maintainers from independents and and member companies alike including Docker, Google, IBM, ZTE and ZJU .
- 2949+ commits, 26 releases
Availability and Resources
To participate in containerd: https://github.com/docker/containerd/ .
- Getting Started with containerd: http://mobyproject.org/blog/2017/08/15/containerd-getting-started/
- Roadmap: https://github.com/containerd/containerd/blob/master/ROADMAP.md
- Scope table: https://github.com/containerd/containerd#scope
- Architecture document: https://github.com/containerd/containerd/blob/master/design/architecture.md
- APIs: https://github.com/containerd/containerd/tree/master/api/.
Meet us at KubeCon
Learn more about containerd at KubeCon by attending Justin Cormack’s LinuxKit & Kubernetes talk at Austin Docker Meetup, Patrick Chanezon’s Moby session Phil Estes’ session or the containerd salon.