Unikernels: What They Are, and What Docker Could Do with Them

Until last month, most people had not heard of Unikernels. That changed on Jan. 21 when Docker acquired Unikernels Systems, a London start-up that could help the company bring a leaner, even more portable virtualization solution to the mainstream.

Docker didn’t invent containers, but it has made its name — and secured a lot of capital investment — by making them ready for prime time. Now, it seems to want to do the same thing with Unikernels.

Unikernels are like containers in most ways. Both technologies allow developers to package apps into portable, self-contained environments that greatly reduce the resource overhead required to run apps. They make app deployment more scalable, more secure and less expensive.

But whereas Docker containers require an underlying Linux-based operating system in order to work, Unikernels package the operating system up alongside everything else. They do so by integrating only the very specific parts of the OS that they need to run a particular application, and discarding everything else.

That makes Unikernels even leaner and more portable than containers à la Docker, which require way more overhead by comparison. Even if a container is running on a stripped-down Linux-based OS, the Linux system is still likely to include lots of components that are not strictly necessary to run whichever app is inside the container.

Unikernels are not a new idea. Actually, in a way, they are a reversion to the early days of computing, when most operating systems were designed to perform a single, specific task. That’s what Unikernels do: They are essentially complete operating systems that do one thing, which is to run a certain app.

Even in a more specific sense, though, Unikernels are not new. Production-quality OSes that run as Unikernels, like MirageOS, have been around for some time. So have many other Unikernel projects that remain more experimental.

Of course, few people have heard of platforms like MirageOS. That’s because, so far, no one has really tried using Unikernels as a way to expand upon the Docker container model for deploying apps. Unikernels to date have instead been used primarily either for to power specific kinds of hardware devices, like ones that run a network.

To date, Docker hasn’t said much about what it actually plans to do with Unikernels. But the obvious strategy seems clear enough. If the company can use its newly acquired expertise to make Unikernels stable and usable enough for everyday organizations to leverage them for deploying apps, it could upend traditional virtualization even more than it already has with containers.

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.

Christopher Tozzi has 254 posts and counting. See all posts by Christopher Tozzi