Moby Project Explained
BoxBoat's travel to Austin for Dockercon 2017 turned out to be as eventful as Seattle 2016! Among many of the latest announcements from Docker and the community, the most compelling, exciting (and confusing?) had to have been the Moby Project. Since the Docker Project's first introduction to the community some four years ago, an entire ecosystem of technologies have grown around containerization. Most of these technologies, including notables Compose, Infrakit, and Swarmkit, have been directly contributed by the Docker open source community and established within the Docker organization on GitHub. Even recently, Docker Inc. has made it a priority to split the Docker binary into more consumable modules based upon their function. This can be seen with the spin out and contribution of containerd, as the container runtime component of Docker, and runc, a CLI tool for spawning and running containers according to the OCI specification.
As the Docker project continues to grow and add both community and enterprise sponsored features, Docker must “practice what it preaches” and focus on building a modular solution that is more maintainable and rapidly update-able. If we now presume that the Docker code base continues to split (and in fact Solomon Hykes has said so), what actually will be “docker” when each individual component can be used on its own? How will all of these components be organized as they continue to be related, but yet perform separate functions? Intro the Moby Project.
The Moby Project aims to not only solve these organizational issues, but also provide a new CLI for construction of a fully customized, container-centric Linux distribution with Docker components, using LinuxKit.
Well, actually, yes it is. However, this name was liked so much internally, it has been taken to be used as the overall project name, while the lightweight Linux OS toolkit has now become LinuxKit. Confused yet? The attendees at Dockercon certainly were…
Solomon sums it up:
“…it [Moby] provides a library of components, a framework for assembling them into custom container-based systems and a place for all container enthusiasts to experiment and exchange ideas.”
In short, Moby is for system builders, not necessarily application developers. Those who want to work on the Docker Project itself, compile their own custom container distributions, or build really cool projects from Docker components can do so using Moby. For the rest of us – nothing has changed. Docker is still Docker, and I still have my