Перейти к содержанию

LXC

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Linux Containers»)
LXC (Linux Containers)
Логотип программы LXC (Linux Containers)
Тип Виртуализация на уровне операционной системы
Автор IBM
Разработчики Даниэль Лескано, Серж Айюн, Стефан Грабе
Написана на Си[1] и Bourne shell
Операционная система Linux
Дата выпуска 20 марта 2006[2]
Аппаратные платформы X86, x86-64, IA-64, PowerPC, ARM architecture и SPARC
Последняя версия
Репозиторий github.com/lxc
Лицензия LGPLv2.1+[вд]
Сайт linuxcontainers.org (англ.)
linuxcontainers.org/… (яп.)
linuxcontainers.org/… (нем.)
linuxcontainers.org/… (индон.)
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 и тому подобные[4].

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

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

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

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

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

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

Примечания

[править | править код]
  1. The lxc Open Source Project on Open Hub: Languages Page — 2006.
  2. https://sourceforge.net/projects/lxc/
  3. LXC 6.0.6 LTS — 2026.
  4. Linux Containers - LXC - Безопасность. linuxcontainers.org. Дата обращения: 12 декабря 2016. Архивировано 20 декабря 2016 года.
  5. 1 2 3 4 Выпуск системы управления контейнерами LXD 5.0 : [арх. 11 апреля 2022] // Opennet. — 2022.  11 апреля.
  6. 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.
  7. Parrott, T. 1. Owerview : [арх. 22 сентября 2020] // Introduction to LXD projects : [англ.].
  8. Brauner, C. LXD is now under Canonical : [англ.] : [арх. 1 ноября 2023] / C. Brauner, S. Hallyn, S. Graber // LinuxContainers. — 2023.  4 July.
  9. LXD будет развиваться компанией Canonical отдельно от проекта Linux Containers : [арх. 5 июля 2023] // Opennet. — 2023.  5 июля.
  10. 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: Контейнерные утилиты Linux. developerWorks. IBM (14 июля 2009). Дата обращения: 25 января 2020.