LXC

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.
LXC (Linux Containers)
Логотип программы LXC (Linux Containers)
Тип Виртуализация на уровне операционной системы
Разработчики Даниэль Лескано, Серж Айюн, Стефан Грабе
Написана на Python, Lua и Bourne shell
Операционная система Linux
Первый выпуск 6 августа 2008[1]
Аппаратные платформы X86, x86-64, IA-64, PowerPC, ARM и SPARC
Последняя версия
Репозиторий github.com/lxc
Лицензия GNU GPL 2
Сайт linuxcontainers.org (англ.)
linuxcontainers.org/…
Логотип Викисклада Медиафайлы на Викискладе

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

Сходна с OpenVZ и Linux-VServer[англ.] для 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 и тому подобные[3].

LXD

LXD — высокоуровневый инструмент управления контейнерами[4], это менеджер контейнеров и виртуальных машин, созданный разработчиками The Linux Containers project на основе LXC. Разработка LXD начата в 2015 году и спонсируется компанией Canonical[5]. LXD создан для упрощения администрирования множества контейнеров и работа с ним похожа на работу с менеджерами виртуальных машин[6]. LXD написан на языке программирования Go и распространяется под лицензией Apache 2.0[4].

LXD использует контейнеризацию LXC, управление контрольными точками CRIU и виртуализацию QEMU[4].

История LXD

В апреле 2022 года вышла версия LXD 5.0[4].

В июле 2023 года управление разработкой LXD было передано из The Linux Containers project в Canonical[5][7][8].

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

После передачи LXD в Canonical, в The Linux Containers project занимаются разработкой менеджера виртуализации Incus и рекомендуют своим пользовалям переходить с LXD на него[9].

Примечания

  1. https://linuxcontainers.org/lxc/downloads/
  2. Release v6.0.0 — 2024.
  3. Linux Containers - LXC - Безопасность. linuxcontainers.org. Дата обращения: 12 декабря 2016. Архивировано 20 декабря 2016 года.
  4. 1 2 3 4 Выпуск системы управления контейнерами LXD 5.0 : [арх. 11 апреля 2022] // Opennet. — 2022. — 11 апреля.
  5. 1 2 Rudra, S. The LXD Project Finds a New Home at Canonical : The LXD Project has moved to Canonical's website. Here's what you need to know about it : [англ.] : [арх. 5 июля 2023] // It's FOSS News. — 2023. — 5 July.
  6. Parrott, T. 1. Owerview : [арх. 22 сентября 2020] // Introduction to LXD projects : [англ.].
  7. Brauner, C. LXD is now under Canonical : [англ.] : [арх. 1 ноября 2023] / C. Brauner, S. Hallyn, S. Graber // LinuxContainers. — 2023. — 4 July.
  8. LXD будет развиваться компанией Canonical отдельно от проекта Linux Containers : [арх. 5 июля 2023] // Opennet. — 2023. — 5 июля.
  9. 1 2 Graber, S. Important notice for LXD users (image server) : [англ.] // Linux Containers. — 2023.

Литература

  • Senthil Kumaran S. Practical LXC and LXD: Linux Containers for Virtualization and Orchestration. — Apress, 2017. — 159 с. — ISBN 978-1-4842-3023-7.
  • Джон Лэйн. LXC: малая виртуализация // Linux Format. — 2912. — Октябрь (62). — С. 88—91.
  • Мэт Хэлсли. LXC: Kонтейнерные утилиты Linux. developerWorks. IBM (14 июля 2009). Дата обращения: 25 января 2020.

Ссылки