September 23, 2017

Is there still a future for LXC, the Linux container framework that predated Docker? Maybe—but probably not in a way that involves it competing directly with Docker as an application container solution.

A (Very) Brief History

The LXC container framework debuted in 2008. Few people paid close attention at the time. It was interesting as a lightweight alternative to traditional virtualization, but in its early years it suffered from an incomplete security model.

LXC’s growth was probably also limited by the fact that it is an open-source technology and had no major company or organization to promote it at the time. The developers were in no position to compete with companies in the virtualization market such as VMware.

Plus, it may have seemed strange in 2008 to think of open source in any way as a viable alternative to commercial virtualization platforms. At the time, KVM—which today is a feature-rich, production-ready open-source hypervisor—remained very primitive. Other open-source virtualization solutions, such as VirtualBox, were not designed for enterprise use.

LXC did enjoy some adoption early on. Wercker and Heroku were two companies using it in production by 2012. Still, it never saw adoption rates that came close to comparing to those of Docker today.

Docker’s Debut

When Docker was released in 2013, it had the backing of a commercial company. Docker also had the advantage of being born into a market that was much more accepting of open source than the one LXC faced in 2008.

This is probably why Docker quickly stole its thunder—and generated much of its own—when it debuted.

At first, Docker actually helped to make it more popular, because Docker was based on LXC. That changed early in Docker’s history, however, when Docker replaced it with libcontainer.

Ultimately, Docker’s rise came at LXC’s expense. Few organizations today use LXC in production as a way to deploy application containers.

The Future

Yet, LXC still has a bright future. The catch is that instead of being used for the purpose for which it was originally intended, its future lies in supporting system containers by forming the basis for LXD.

System containers are designed to host entire operating systems inside virtual environments. This makes them different from application containers, which host individual applications.

Docker is primarily an application container platform. LXD, which is based on LXD, is a system container platform. More specifically, LXD is a hypervisor that manages LXC system containers.

Canonical, the company that develops the Ubuntu Linux distribution, has been promoting LXD for the past several years. LXD has yet to see the adoption or market awareness of Docker, but it’s on more solid footing to remain a part of the container ecosystem than is LXC on its own.

Conclusion

LXC helped to birth Docker, but Docker stole all of the market share that it might ever have hoped to claim as an application container platform.

Yet, LXC still has a future as part of a system container framework, thanks to LXD. It’s just not the future that any of the developers likely envisioned when they created it a decade ago.

Christopher Tozzi

Christopher Tozzi has covered technology and business news for nearly a decade, specializing in open source, containers, big data, networking and security. He is currently Senior Editor and DevOps Analyst with Fixate.io and Sweetcode.io.