Что такое LXC?

«Что такое LXC?» — вопрос из категории Виртуализация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ключевые особенности с точки зрения DevOps:

  • Легковесность: Контейнеры запускаются практически мгновенно и имеют минимальные накладные расходы на ресурсы (CPU, память), так как нет гипервизора и гостевой ОС.
  • Изоляция: Обеспечивает изоляцию процессов, файловой системы, сети и пространства пользователей (user namespaces) между контейнерами.
  • Управление через низкоуровневые утилиты: Прямая работа с контейнерами через набор команд lxc-* (например, lxc-create, lxc-start, lxc-attach).
  • Основа для других технологий: LXC является фундаментом для более высокоуровневых инструментов, таких как LXD и ранние версии Docker.

Пример создания и запуска контейнера Ubuntu:

# Устанавливаем шаблон и создаем контейнер с именем 'dev-container'
lxc-create -n dev-container -t download -- -d ubuntu -r jammy -a amd64

# Запускаем контейнер
lxc-start -n dev-container

# Получаем доступ к консоли контейнера
lxc-attach -n dev-container

# Внутри контейнера можно работать как в обычной системе:
# apt update && apt install -y nginx

В DevOps LXC исторически использовался для создания стабильных и изолированных сред для развертывания приложений, тестирования и CI/CD, прежде чем Docker с его образом приложения стал стандартом.