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-контейнера может выполнить произвольный код в родительскойоперационной системе:это возможно за счёт того, чтоuid0 внутри контейнера совпадает с uid 0 базовой системы (внутри которой контейнер запущен). С выпуском LXC версии 1.0 данная проблема исправлена введением «непривилегированных контейнеров» — где uid 0 в контейнере соответствует непривилегированному пользователю снаружи и имеет расширенные права только на свои ресурсы. LXC до версии 1.0 можно обезопасить с помощью различных настроек управления доступом и фильтров, используя инструментыapparmor,selinuxи тому подобные[3].

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

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

В апреле 2022 года вышла версияLXD5.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 вCanonicalThe 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. 1234Выпуск системы управления контейнерами LXD 5.0:[арх.11 апреля 2022] // Opennet. — 2022. — 11 апреля.
  5. 12Rudra, 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. 12Graber, 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.