Container-based virtualization, also called operating system virtualization, is an approach to virtualization in which the virtualization layer runs as an application within the operating system (OS). In this approach, the operating system's kernel runs on the hardware node with several isolated guest virtual machines (VMs) installed on top of it. The isolated guests are called containers.
With container-based virtualization, there isn't the overhead associated with having each guest run a completely installed operating system. This approach can also improve performance because there is just one operating system taking care of hardware calls. A disadvantage of container-based virtualization, however, is that each guest must use the same operating system the host uses.
Typically, corporate environments avoid container-based virtualization, preferring hypervisors and the option of having many operating systems. A container-based virtual environment, however, is an ideal choice for hosting providers who need an efficient and secure way to offer operating systems for customers to run services on.