Five Key Open-Source Projects From Docker for Developers
For many cloud enthusiasts, Docker is the gift that keeps on giving. Check out the open-source platforms they've made public over the years.
Join the DZone community and get the full member experience.Join For Free
The rate of innovation within the container ecosystem and throughout the community has been amazing to watch — especially when you consider the timeline of five short years. This impressive evolution is largely the result of the deep engagement from the open source community. This engagement has been instrumental in fostering ongoing innovation.
When Docker launched in 2013, there was immediate excitement from the community around a new way to build, ship and run apps. Developers quickly became involved in the project in many different mays (contributors, advocates, etc.), new companies emerged to form the ecosystem, and the container movement that we see today was born. Since then, Docker has continued to take on a very active role in the open source community, refactoring the Docker Engine codebase into reusable components — including containerd and BuildKit — creating, maintaining and contributing to an array of open source projects and helping to found both the Cloud Native Computing Foundation (CNCF) and the Open Container Initiative (OCI).
As the container movement moves into its next phase of maturation, here are five open source projects that came from Docker, and that will continue to transform and shape the vibrant community and ecosystem we see today and well into the future.
As the core container runtime in Docker Engine, containerd has been leveraged by millions of users and is run in production by tens of thousands of organizations. Last year, Docker made the decision to donate the technology to the CNCF to fuel further innovation across the container ecosystem, enabling other container system vendors and orchestration projects including Kubernetes, DC/OS and more to utilize a common core container runtime. In April of this year, containerd 1.1 was released — the latest version adds support for the Kubernetes Container Runtime Interface (CRI), allowing it to be used directly by Kubernetes in addition to Docker Engine.
The latest open source project from Docker, BuildKit is the part of Docker Engine used to build images. It’s an exciting new project that Docker introduced with the goal of providing developers with a toolkit for converting code to build artifacts in an efficient, expressive and repeatable manner. Because of its modular architecture, BuildKit enables a number of new capabilities and improvements — particularly around performance.
If you are looking to optimize image building for containerd, BuildKit integrated in Docker Engine is a great answer. Sitting under the Moby umbrella, BuildKit will be integrated in Docker 18.06 as an experimental feature that will bring extensibility and greater performance.
runC is a lightweight universal container runtime designed for spawning and running containers according to the OCI specification. Consisting of all the plumbing code used to interact with system features related to containers, runC was a foundational technology in the creation of the Open Containers Initiative. Docker donated runC in 2015 to help form the OCI build and runtime specification. Fast forward to 2017 and the OCI runtime and image specifications reached 1.0. With the v1.0 milestone, the OCI took a big step toward ensuring container portability across various implementations. This, in turn, makes it easier for customers to support portable container solutions.
At its essence, Notary is a platform for establishing high levels of trust over pieces of content. It does this through strong cryptographic signatures and guaranteeing content is not modified without approval of the author at any point in the software supply chain. Higher level systems like Docker Enterprise Edition with Docker Content Trust can then establish clear policies on the usage of content. Toward the end of 2017, Docker donated Notary to the CNCF toward, making it one of the first security-related projects to be under the oversight of the foundation. Notary is also being used in production environments with Cloudflare integrating it into their PAL tool for container identity bootstrapping, as one example.
An early open source project from Docker, Libnetwork provides a native Go implementation for connecting containers. With it comes a consistent programming interface and the required network abstractions for applications via a robust Container Network Model. This allows users to manage the networking lifecycle of the container and additional operations after the container is created. Not to mention, there’s an abundance of networking solutions on the market and a broad swath of use cases. To support all of these solutions while reducing complexity, Libnetwork exposes a simple and consistent Network Model to users.
To view the complete list of Moby projects and get involved, check out this link.
Opinions expressed by DZone contributors are their own.