A container is an operating-system-level virtualization method for running multiple isolated Linux systems on a control host using a single Linux kernel.
There’s an important distinction between OS-level virtualization and virtualization. The former is often known as containers.
OS-level virtualization (containers) share the same operating system kernel and isolate the application processes from the rest of the system. For example: ARM Linux systems run ARM Linux containers, x86 Linux systems run x86 Linux containers, x86 Windows systems run x86 Windows containers. Linux containers are extremely portable, but they must be compatible with the underlying system.
Containers are different from Type 1 and 2 hypervisors. A Type 1 hypervisor is known as native or bare-metal. With this type, the hypervisor runs directly on the host’s hardware to control the hardware resources and to manage guest operating systems. In other words, the software hypervisor does not require an additional underlying operating system.
The second type of hypervisor runs under a conventional operating system environment as a second layer, with the guest operating systems then running at the third level.
Virtualization uses a hypervisor to emulate hardware, which allows multiple operating systems to run side by side. This isn’t as lightweight as using containers. Compared to virtual machines, a Linux container is less resource-intensive, has a standard interface (start, stop, environment variables, etc.), retains application isolation, and is more easily managed as part of a larger application (multiple containers). Additionally, those multi-container applications can be orchestrated across multiple clouds.
Here’s our recommended OS-level virtualization (container) software.
Let’s explore the 5 containers at hand. For each application we have compiled its own portal page, providing a full description with an in-depth analysis of its features, together with links to relevant resources.
|Docker||Create, deploy, and run applications by using containers|
|LXC||Userspace interface for the Linux kernel containment features|
|Singularity||Optimized for compute focused enterprise and HPC workloads|
|Kata Containers||Uses a hypervisor to provide isolation when spawning containers|
Read our complete collection of recommended free and open source software. The collection covers all categories of software.
The software collection forms part of our series of informative articles for Linux enthusiasts. There's tons of in-depth reviews, alternatives to Google, fun things to try, hardware, free programming books and tutorials, and much more.