hostprofi.ru
Подобрать хостинг
Термин·буква L

LXC

краткое определение

LXC (Linux Containers) — технология контейнеризации на уровне ОС, использующая namespace и cgroups ядра Linux для изоляции процессов. LXC-контейнеры разделяют ядро хоста, но имеют собственную файловую систему, сеть и процессы.

LXC — низкоуровневый инструмент контейнеризации Linux, созданный в 2008 году. LXC создаёт изолированные пространства имён (namespaces) для процессов, файловой системы, сети и пользователей, при этом все контейнеры разделяют одно ядро хоста. Это принципиально отличает LXC от KVM-виртуализации, где каждая ВМ имеет собственное ядро.

Как работает

LXC использует два механизма ядра Linux: namespaces (изоляция видимости: процессы, сеть, файловая система, IPC, пользователи) и cgroups (контроль потребления ресурсов: CPU, RAM, I/O). Контейнер видит только свои процессы, свою файловую систему и свой сетевой стек — другие контейнеры для него невидимы.

Контейнер LXC выглядит как полноценная Linux-система с init-процессом (systemd или sysvinit), сетевым интерфейсом, пакетным менеджером. Можно запустить Ubuntu или Debian как LXC-контейнер внутри хоста с другим дистрибутивом. Нельзя запустить Windows или другое ядро — только Linux.

Управление через утилиту lxc-create, lxc-start, lxc-attach. Высокоуровневый интерфейс — LXD (демон управления контейнерами и виртуальными машинами от Canonical). Proxmox VE использует LXC как альтернативу KVM для лёгких контейнеров.

История

LXC разработан IBM и включён в Linux kernel 2.6.24 в 2008 году. Docker первоначально (2013) использовал LXC как контейнерный бэкенд, затем перешёл на собственный libcontainer/runC. LXD выпущен Canonical в 2015 году. В 2023 году Canonical передала LXD организации Linux Containers.

Ключевые отличия от похожих терминов

LXC — системные контейнеры с полной Linux-средой. Docker — контейнеры приложений: один процесс на контейнер, образы из Dockerfile. OpenVZ — аналог LXC, но коммерческий продукт от Virtuozzo с дополнительными функциями для хостинга.

LXC vs Docker

Docker — контейнеры приложений (одно приложение на контейнер). LXC — системный контейнер: полноценная ОС с systemd и несколькими сервисами. LXC-контейнер живёт неделями; Docker-контейнер — дни. Для CI/CD — Docker, для долгоживущих системных сред — LXC.

Производительность LXC

LXC работает без эмуляции железа — производительность практически идентична bare-metal. Накладные расходы: 1–3% по CPU и RAM. Эффективнее KVM для нескольких изолированных сред на одном хосте.

Безопасность LXC

LXC использует пространства имён Linux: PID, network, mount, UTS, IPC, user. Unprivileged контейнеры (UID mapping) — современный стандарт безопасности. AppArmor или SELinux добавляют обязательный контроль доступа. LXD добавляет cluster-режим и REST API.

LXC в Proxmox VE

Proxmox VE поддерживает LXC контейнеры как привилегированные и непривилегированные. Templates: предустановленные образы Debian, Ubuntu, Alpine, CentOS. Хранение: LVM, ZFS, Ceph. Для веб-серверов без Docker: LXC + Nginx + PHP-FPM = минимальные накладные расходы.

Шаблоны LXC и облачные образы

Proxmox CT Template: pveam download local ubuntu-22.04-standard. Создание контейнера: pct create 100 local:vztmpl/ubuntu-22.04.tar.zst -rootfs local-lvm:8 -memory 512 -net0 name=eth0,bridge=vmbr0. LXD Image Server: images.linuxcontainers.org — 100+ образов дистрибутивов.

Другие термины