Docker containers are one of the hottest technologies around and CoreOS, a Linux-based operating system for very large server deployments, built its service around Docker containers and contributed heavily to the project. But as the company announced today, it is now working on its own container runtime, largely because it disagrees with Docker’s overall direction.
“We thought Docker would become a simple unit that we can all agree on,” CoreOS CEO Alex Polvi writes in today’s announcement. “Unfortunately, a simple re-usable component is not how things are playing out. Docker now is building tools for launching cloud servers, systems for clustering, and a wide range of functions: building images, running images, uploading, downloading, and eventually even overlay networking, all compiled into one monolithic binary running primarily as root on your server.”
Polvi argues that in the early days of Docker, it looked like the company was working on a standard container architecture that would make life easier for developers (and companies like CoreOS). But Docker’s mission has expanded quite a bit (especially since it started raising large amounts of money) and it’s now building tools that companies in its ecosystem are also working on. “ We should stop talking about Docker containers, and start talking about the Docker Platform,” Polvi writes. “It is not becoming the simple composable building block we had envisioned.”
So CoreOS now wants to develop that building block itself with Rocket, a command line tool for running what the company calls “App Containers.” The exact specs for these containers are still in flux, but you can take a look at the current state of the discussion here.
The overall premise behind Rocket is essentially the same as Docker’s. That raises the question why CoreOS didn’t just fork Docker? It’s an open-source project, after all. Doing that, however, would mean to work with what Polvi calls Docker’s “fundamentally flawed” process model. To implement a better model, the team would have to rewrite all of Docker first, so starting over is not just easier but also means the team can take a fresh look at containers.
Despite all of this, CoreOS will continue to support Docker. The first version of Rocket is now available on GitHub.