This week, the Moby Project was
with the idea of componentizing Docker into a series of assemblies. At
DockerCon, a neat demo was done using the
moby tool to assemble
various components into customized Linux operating system images. While
very cool, this seemed to have confused people – we’d like to provide
some more background and explanation about the Moby Project and how it
affects Rancher, RancherOS, and our users.
Some background on the Moby Project
The transition to the Moby Project actually started a couple of months ago, with a discussion among the Docker Project maintainers, about the dual nature of Docker as both a product and a project. This dual nature served Docker (the project and the company) well in the beginning, but at the end of the day, Docker, Inc. must make hard decisions about what their product should and will be. As a group of maintainers, we agreed that the product and project should be split. The end goal was to further componentize Docker, building on previous work to do so. Componentizing Docker is nothing new; this work has been going on for a long time, starting with runc and containerd, and has long been a goal of the Docker project. Thanks to over a thousand contributors and the maintainers, Docker is currently a well-organized set of libraries and packages. The Moby Project turns the Docker project into a fully-componentized architecture, and provides a new home to the vast majority of the Docker code, but not the product itself. Moby allows us, as members of the community, to innovate, contribute, and steer container technologies in ways that weren’t possible before. We now have the ability to address use cases that are quite valid from a technical perspective, but that would have previously conflicted with the Docker product. One such use case is RancherOS.
How Moby affects Rancher, RancherOS, and our users
Now to answer the question: how does this impact Rancher, RancherOS, and
our users? Most users won’t see any change; Docker is still Docker. It
will continue to be the Docker you know and love (with what is hopefully
a better internal architecture). Where you will see a change is in
RancherOS. As an operating system in which all components are
containers, RancherOS is a highly-specialized application of containers.
We’ve needed some really low-level knobs in Docker to make RancherOS
possible, and Docker has been kind enough to give us many of those
knobs, even to the detriment of the Docker UX. For example,
--uts=host: I would guess 99% of Docker users have no idea what that
flag is for, but RancherOS requires it so DHCP can dynamically propagate
hostname changes. Going forward, the Moby Project is going to be great
for RancherOS. We can keep the same great Docker user interface, but
with Moby, we can get access to all the fancy low-level Linux knobs we
need. In the end, you will see RancherOS get smaller, faster, and more
secure. The Moby Project is also great for Rancher; Rancher is designed
to manage Docker containers, and in the future, we’ll be able to also
manage customized Linux components assembled from the Moby Project.
And in closing... Rancher Labs are very much in favor of the Moby
Project, and we hope the community understands that its introduction is
good for everyone. We’re looking forward to working closely with Docker
users, Rancher users, and everyone else in the container ecosystem.
Darren Shepherd is Chief Architect of Rancher Labs.