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.
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.
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.
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.