Of all the news that's come out this week around app containerization system Docker's 1.0 release, the details abut what's inside Docker may be most crucial.
A key project at the heart of Docker, libcontainer, is becoming a collaborative effort that could make containers even more useful than they are now with Docker -- and it could transform Docker into far more than a Linux-centric technology.
Here are four big reasons why libcontainer might be an even bigger deal than Docker itself in the long run.
1. It's a standard, or as close to one as we're going to get right now
Libcontainer provides a standard interface to making sandboxes or containers inside an OS. With it, a container can interface in a predictable way with the host OS's resources, security, and behavioral controls, and the app inside it can be controlled as expected.
Consequently, Docker no longer has to depend on other components to work properly. In Linux, this was a problem, since Docker historically relied on, for example, LXC (which might vary across distributions or installations).
Linux has offered a surfeit of ways to containerize applications, from its own LXC to infrastructure-based technologies like OpenShift's gears or Heroku's dynos. But they've either fallen short on features or not measured up as standards in the sense of features that can be deployed on their own. To that end, libcontainer is the first attempt to standardize the way apps are packed up, delivered, and run in isolation -- and one that developers, not just sys admins, can hook into and implement.
2. It'll give everyone a slice of the same containerization pie
Amid the Docker 1.0 announcements, the wide extent of Docker support became clear. Red Hat, Google, Canonical, and Parallels will contribute different functionality to libcontainer, not only benefiting from it in different ways, but providing an expansion of Docker's functionality back to its customers.
Red Hat, via the forthcoming Project Atomic, is interested in making Docker the basis for heavily containerizing Linux itself from top to bottom. This project could have major implications for how Linux distributions are created in the first place, and it's likely to be made easier with libcontainer. Google added support for Docker containers to its cloud services, Canonical is adding resource management functions to libcontainer, and Parallels is contributing a language port, a rewrite of libcontainer in C.
3. Docker could become a Windows thing too
As libcontainer is ported to other languages, Docker will likely show up in places it hasn't been deployed yet. Case in point: Microsoft Windows.
Docker CEO Ben Golub has noted there's nothing stopping Docker from becoming a cross-platform technology. "There is no fundamental reason why we have to stay in Linux," he said, hinting some projects involving Microsoft's .Net were on the way.
Notions of how this could unfold may already have surfaced. The most recent revision of ASP.Net is a cross-platform endeavor, and Microsoft has added support for Docker in Azure. Such developments would make it possible for the new .Net itself to be Docker-ized.
It isn't all that surprising Microsoft would be interested in the project. Not only has Microsoft revised its attitudes toward open source, but the research plays into the company's intent to make Windows Azure into a foundation upon which any kind of software or OS can run.
4. Docker itself might be only the beginning
With libcontainer being open source, there's little to stop others from building their own containerization products on top of it. It's likely Docker will remain the go-to product for app containers for a good long time -- it has the momentum, the existing base of users, and a thriving ecosystem of third-party services. But Docker hardly has to be the only product.
This story, "4 reasons why Docker's libcontainer is a big deal" was originally published by InfoWorld.