Matt Asay
Contributing Writer

Docker or Rocket for containers? Why not both?

news analysis
Jan 6, 20156 mins

While Docker and CoreOS have been fighting to own the container market, the two offer different approaches that complement as much as they compete

As 2014 drew to a close, CoreOS launched a Rocket at Docker, challenging Dockerโ€™s process model as โ€œfundamentally flawed.โ€ While CoreOS founder Alex Polvi has since softened his stance, heโ€™s sticking with his fundamental thesis that Docker is โ€œno longer the ideal component for building systems.โ€

The meteoric rise of containers is a recent phenomenon, so itโ€™s easy to see why Polvi is aggressively staking a claim. As the container wars get started, however, the larger concern is whether back-and-forth sparring between vendors will end up scaring off enterprises from adopting container technology, at least until the dust settles.

Platform vs. component

On one point both CoreOSโ€™s Polvi and Docker founder Solomon Hykes agree: Rocket and Docker arenโ€™t competitive โ€” not really. As Hykes told me, Rocket is โ€œactually a libcontainer competitor,โ€ not a competitor to the overarching Docker platform. Libcontainer, a library that โ€œspecifies configuration options for what a container is,โ€ is essential to Docker, but itโ€™s also a true community effort that could help define the future of containers.

Libcontainer is, in other words, a really big deal, as InfoWorldโ€™s Serdar Yegulalp writes.

But Polvi apparently feels that Docker is neglecting its core in its aspirations to be more โ€” to be a platform. As Polvi told me:

Docker started out as a component for building platforms with. A building block. Something you could layer into your existing systems to take advantage of containersโ€ฆ. This was the original value prop of Docker, a simple tool to help you build things and why I think it has been so successful to date.

In some ways this feels like โ€œwe want to go back to the good old days,โ€ but Polvi insists itโ€™s not about being anti-Docker so much as it is a desire for Docker to remain an open component used to build other systems:

Docker is [now] a platform itself, not the building block. Is this bad? No, it is just no longer the ideal component for building systems. That includes our system, where we want to use containers to build an OS.
We think there is still a need for the component to exist for other systems to integrate with. We think the original premise of Docker is still a good one, so we want to make sure it exists. Thatโ€™s why we built Rocket.

In some ways, then, the problem is that in its quest to build a business, Docker may have purposefully or inadvertently made it harder to build other businesses upon it. Polvi continues:

Docker Platform and Rocket are distinctly different things. Docker Platform is a product. Rocket is a component. Companies will choose Docker Platform as an alternative to things like [Pivotalโ€™s] Cloud Foundry. Companies like Cloud Foundry will use things like Rocket to build Cloud Foundry.

Whether your company needs Docker or Rocket (or another container technology) may ultimately come down to what you want to build. But could companies get by with using Docker, the platform, then going with libcontainer as Polviโ€™s composable component?

Definitely maybe. Thatโ€™s where it gets confusing.

Does Rocket need to exist?

The open source world has a long history of scratching itches no one knew needed scratching. Sometimes they pay off, but more often than not, they donโ€™t.

Docker replaces the Linux kernelโ€™s LXC, container technology that has been around for eons. But as Pivotalโ€™s Andrew Clay Shafer points out, โ€œDocker addressed [LXCโ€™s] usability issues and made that tech accessible.โ€

In like manner, CoreOS improves on Docker in significant ways. As Pivotalโ€™s Cloud Foundry executive James Watters stresses, Rocket โ€œwas [a] really important step that brought new thinking to the market, and kept the idea of multi-platform container at the center.โ€ It also promised to improve on Dockerโ€™s security, among other things.

Not everyone agrees.

While Hykes acknowledges Rocket offers โ€œsome good ideas, which we will incorporate,โ€ he insists Rocket lacks the primary improvements sought by CoreOS, including improved security and composability.

Maybe, maybe not. Rocketโ€™s largely warm reception suggests it serves a deep industry need. Even as Docker expands functionality in pursuit of overall improved ease of use, many want a more discrete container library they can easily layer into existing projects or environments. Libcontainer might be the answer, but developers seem to appreciate Rocketโ€™s back-to-basics approach.

Clearing up the confusion

Which, again, leaves enterprises with the question: Do they need Docker or Rocket? Increasingly, the answer is probably both.

Then thereโ€™s the fear that competing technologies end up confusing would-be customers more than it helps them. As Polvi told me, though, thereโ€™s strong consensus, even between competitors, on the need to tell a common story of the value of containers:

Everyone in our emerging space wants customers to be successful with containers. We felt we had to do something [around security, composability, and open standards] ย to make sure that containers are enterprise ready. We think Rocket helps with this and encourages Docker to move in the right direction as well.

This is how competition works, and more pertinent, itโ€™s how open source works. As Polvi rightly argued to me, โ€œIn general, open source is great at producing components, not products.โ€ Enterprises looking to open source container technology, then, would do well to keep this in mind and expect open source to deliver far better building blocks than finished enterprise products.

It also means, as Polvi went on to tell me, that CoreOSโ€™s primary competitor is not Docker but rather โ€œthe internal teams piecing everything together themselves.โ€ While large companies will always have teams to build systems to run infrastructure, CoreOS (and Docker) believe they โ€œcan deliver solutions to companies that want the same level of sophistication of the big companies, but donโ€™t want to build it all themselves.โ€

Rocket, in other words, is an open source component that can help enterprises build systems, while Docker, according to Polvi, seeks to be a system/platform unto itself. The two are very different approaches, both needed. Which one is right for you in a particular project largely depends on what youโ€™re hoping to build.

Matt Asay

Matt Asay runs developer marketing at Oracle. Previously Asay ran developer relations at MongoDB, and before that he was a Principal at Amazon Web Services and Head of Developer Ecosystem for Adobe. Prior to Adobe, Asay held a range of roles at open source companies: VP of business development, marketing, and community at MongoDB; VP of business development at real-time analytics company Nodeable (acquired by Appcelerator); VP of business development and interim CEO at mobile HTML5 start-up Strobe (acquired by Facebook); COO at Canonical, the Ubuntu Linux company; and head of the Americas at Alfresco, a content management startup. Asay is an emeritus board member of the Open Source Initiative (OSI) and holds a JD from Stanford, where he focused on open source and other IP licensing issues. The views expressed in Mattโ€™s posts are Mattโ€™s, and donโ€™t represent the views of his employer.

More from this author