Search code examples
dockerlinux-kernelkernellinux-containersalpine-linux

Is Alpine Linux an implementation of a Unikernel?


I've been reading a lot about Docker containers and Unikernels and how to run lightweight environment with my own applications.

I understand that Linux containers and Unikernels are different things, as the first are implementations of kernel features (such as namespaces, cgroups, etc) sharing resources with the host's OS, and the later are independent specialised library operating systems built around applications.

But then I've stumbled upon Alpine linux derived images in Dockerhub. They are very lightweight and very specialized. But do they run around the same LXC/runc features?

Is it possible to run a unikernel under a hypervisor implementation using Docker?

What is the diference between Alpine images and the others?


Solution

  • I am not very familar with unikernels but i can try to answer your last question:

    Most of the Docker images are based on Ubuntu, the main difference is the size of the image, while a Ubuntu image has 183MB a Alpine has only 4,5MB.

    Therefor the Alpine has a lower attack surface and is designed for security look here: http://www.alpinelinux.org/about/

    Alpine Linux was designed with security in mind

    The Alpine Linux Images run on the same LXC/runc features i think.