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

Сходна с OpenVZ и для Linux, а также FreeBSD jail и Solaris Containers. Использует технологии контрольных групп и пространств имён, входящие в ядро Linux начиная с версии 2.6.29.

Основные разработчики — Даниэль Лескано (Daniel Lezcano), Серж Айюн (Serge Hallyn) и Стефан Грабе (Stéphane Graber).

Среди примеров использования — применение в PaaS-хостинге Heroku для изоляции динамических контейнеров (dynos). Проект Docker в ранних версиях использовал LXC в качестве драйвера запуска контейнеров (с версии 0.9 использование LXC стало опциональным, а с версии 1.10 — поддержка была полностью прекращена).

Безопасность Изначально LXC-контейнеры не поддерживали достаточно высокого уровня изоляции в сравнении с контейнерами на базе более ранней технологии OpenVZ. В частности, в ядре Linux до версии 3.8 root-пользователь LXC-контейнера может выполнить произвольный код в родительской операционной системе: это возможно за счёт того, что uid 0 внутри контейнера совпадает с uid 0 базовой системы (внутри которой контейнер запущен). С выпуском LXC версии 1.0 данная проблема исправлена введением «непривилегированных контейнеров» — где uid 0 в контейнере соответствует непривилегированному пользователю снаружи и имеет расширенные права только на свои ресурсы. LXC до версии 1.0 можно обезопасить с помощью различных настроек управления доступом и фильтров, используя инструменты apparmor, selinux и тому подобные.

LXD  — высокоуровневый инструмент управления контейнерами, это менеджер контейнеров и виртуальных машин, созданный разработчиками на основе . Разработка начата в 2015 году и спонсируется компанией . создан для упрощения администрирования множества контейнеров и работа с ним похожа на работу с менеджерами виртуальных машин. написан на языке программирования Go и распространяется под лицензией Apache 2.0.

использует контейнеризацию , управление контрольными точками и виртуализацию .

История LXD В апреле 2022 года вышла версия 5.0.

В июле 2023 года управление разработкой было передано из в .

В 2024 году , из-за изменения лицензии новым владельцем LXD, прекратил поддержку образов для контейнеров LXC/LXD. По плану завершения поддержки библиотеки образов на сервере , 1 мая 2024 года все пользователи LXD потеряли доступ к образам, ранее опубликованным на нём.

После передачи LXD в , в занимаются разработкой менеджера виртуализации Incus и рекомендуют своим пользовалям переходить с LXD на него.

Примечания

Литература

Ссылки

Репозиторий LXD LXC Howto Стефан Грабе. Цикл статей о LXC 1.0. Перевод.

Категория:Безопасность операционных систем Категория:Linux Категория:Программы для контейнеризации __NOTOC__