LXC - это метод виртуализации на уровне операционной системы для запуска нескольких изолированных систем (контейнеров) Linux на одном управляющем хосте. Иногда это называют "chroot на стероидах".

LXC обеспечивает виртуализацию на уровне операционной системы не через полноценную виртуальную машину, а, скорее, предоставляет виртуальную среду, которая имеет свой собственный процесс и сетевое пространство. LXC полагается на функциональность cgroups ядра Linux, которая стала доступной в версии 2.6.29 и теперь доступна во всех последующих выпусках ядра.

Cgroups были разработаны как часть LXC. Он также полагается на другие виды функций изоляции пространства имен, которые были разработаны и интегрированы в основное ядро ​​Linux.

LXC похож на другие технологии виртуализации на уровне ОС в Linux, такие как OpenVZ и Linux-VServer, а также на технологии в других операционных системах, таких как тюрьмы FreeBSD. Контейнеры LXC могут определять различные лимиты ЦП, лимиты памяти и т. Д. (Короче говоря, все параметры, которые могут быть установлены через CGROUPS), чтобы предотвратить взаимодействие одного контейнера со всеми другими контейнерами, работающими на одном хосте LXC.

LXC использует команды linux bridge-utils для создания локальных VLAN и присоединения к ним контейнеров и физических интерфейсов. С контейнерами физические издержки (оперативная память, пространство подкачки, одно ядро ​​на виртуальную машину плюс гипервизор), присутствующие в методах виртуализации, уменьшаются. В случае контейнеров одно ядро ​​и одно пространство виртуальной памяти совместно используются всеми контейнерами, работающими на этом хосте.

Для сравнения других методов виртуализации операционной системы см. Эту ссылку