stringtranslate.com

LXC

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

Ядро Linux предоставляет функциональность cgroups , которая позволяет ограничивать и приоритезировать ресурсы (ЦП, память, блочный ввод-вывод, сеть и т. д.) без необходимости запуска каких-либо виртуальных машин , а также функциональность изоляции пространства имен , которая позволяет полностью изолировать представление приложения об операционной среде, включая деревья процессов , сетевые подключения , идентификаторы пользователей и смонтированные файловые системы . [3]

LXC объединяет контрольные группы ядра и поддержку изолированных пространств имен , чтобы обеспечить изолированную среду для приложений. [4] Ранние версии Docker использовали LXC в качестве драйвера выполнения контейнера, [4] хотя LXC стал необязательным в v0.9, а его поддержка была прекращена в Docker v1.10. [5] [6]

Обзор

LXC изначально был разработан IBM в рамках сотрудничества между несколькими сторонами, стремящимися добавить пространства имен в ядро. [7] Он обеспечивает виртуализацию на уровне операционной системы через виртуальную среду, которая имеет свой собственный процесс и сетевое пространство, вместо создания полноценной виртуальной машины . LXC опирается на функциональность cgroups ядра Linux [8] , которая была выпущена в версии 2.6.24. Он также опирается на другие виды функциональности изоляции пространств имен, которые были разработаны и интегрированы в основное ядро ​​Linux.

Безопасность

Первоначально контейнеры LXC не были такими безопасными, как другие методы виртуализации на уровне ОС, такие как OpenVZ : в ядрах Linux до версии 3.8 пользователь root гостевой системы мог запускать произвольный код на хостовой системе с привилегиями root, так же, как он мог это делать в chroot- окружениях. [9] Начиная с выпуска LXC 1.0, стало возможным запускать контейнеры как обычные пользователи на хосте, используя «непривилегированные контейнеры». [10] Непривилегированные контейнеры более ограничены в том смысле, что они не могут напрямую получать доступ к оборудованию. Однако даже привилегированные контейнеры должны обеспечивать адекватную изоляцию в модели безопасности LXC 1.0, если они правильно настроены. [10]

Альтернативы

LXC похож на другие технологии виртуализации на уровне ОС в Linux, такие как OpenVZ и Linux-VServer , а также на технологии в других операционных системах, таких как FreeBSD jails , AIX Workload Partitions и Solaris Containers . В отличие от OpenVZ, LXC работает в ядре vanilla Linux, не требуя дополнительных исправлений для исходных кодов ядра. Версия 1 LXC, выпущенная 20 февраля 2014 года как долгосрочно поддерживаемая версия, поддерживалась в течение пяти лет. [11] LXC 4.0 будет поддерживаться до 1 июня 2025 года, а LXC 5.0 — до 1 июня 2027 года. [12]

ЛКД

LXD — это альтернативный менеджер контейнеров Linux, написанный на Go . Он построен на основе LXC и призван обеспечить лучший пользовательский интерфейс. [13] Это гипервизор контейнеров , предоставляющий API для управления контейнерами LXC. [14] Проект LXD был начат в 2015 году и с самого начала спонсировался Canonical Ltd. , компанией, стоящей за Ubuntu . 4 июля 2023 года проект LinuxContainers объявил, что Canonical решила взять на себя проект LXD, но был создан форк под названием Incus. [15] [16] 25 августа 2023 года версия LXD 5.17 была официально выпущена под контролем Canonical, обеспечивая поддержку возможностей делегирования OpenZFS 2.2. [17]

Смотрите также

Ссылки

  1. ^ "Загрузки". Linux containers . Архивировано из оригинала 2014-11-10 . Получено 2014-11-10 .
  2. ^ "Release v6.0.0". 3 апреля 2024 г. Получено 11 апреля 2024 г.
  3. ^ Рами Розен (май 2013 г.). «Управление ресурсами: пространства имен ядра Linux и контрольные группы» (PDF) . CS . UCSB . Получено 11 февраля 2015 г. .
  4. ^ ab Kenlon, Seth (2020-01-30). "Изучение простых контейнеров Linux с помощью lxc". Red Hat . IBM . Получено 2023-07-05 .
  5. ^ "Docker 0.9: введение в драйверы выполнения и libcontainer". Блог . Docker. 2014-03-10 . Получено 2018-05-09 .
  6. ^ "1.10.0". Заметки о выпуске движка . Docker. 2016-02-04 . Получено 2020-10-06 .
  7. ^ Уэбб, Джордан (13.09.2022). «LXC и LXD: другая история контейнера». LWN.net . Получено 05.07.2023 .
  8. ^ Кутупис, Петрос (2018-08-27). «Все, что вам нужно знать о контейнерах Linux, часть II: работа с контейнерами Linux (LXC)». Linux Journal . Получено 2023-07-05 .
  9. ^ Марко, д'Итри (2011). «Уклонение от контейнеров Linux». BOFH . IT. Архивировано из оригинала 9 января 2014 года . Получено 12 февраля 2014 года .
  10. ^ ab Graber, Stéphane (1 января 2014 г.). "LXC 1.0: Функции безопасности [6/10]" . Получено 12 февраля 2014 г. Однако , по крайней мере в Ubuntu, наши стандартные контейнеры поставляются с тем, что мы считаем довольно хорошей конфигурацией как доступа cgroup, так и обширного профиля apparmor, который предотвращает все известные нам атаки. [...] LXC больше не работает как root, поэтому даже если злоумышленнику удастся покинуть контейнер, он обнаружит, что у него есть привилегии обычного пользователя на хосте
  11. ^ Graber, Stéphane (2013-12-20). "LXC 1.0: Ваш первый контейнер Ubuntu". St. Graber . Получено 2014-02-23 .
  12. ^ "LXC". Контейнеры Linux . Получено 2023-02-07 .
  13. ^ "Введение". LXD . Контейнеры Linux . Получено 2020-04-14 .
  14. ^ Паррот, Томас. "Введение в проекты LXD". Ubuntu . Canonical . Получено 2023-07-05 .
  15. ^ "LXD перенесен в Canonical". Linux Containers . 2023-07-04. Архивировано из оригинала 2023-07-04 . Получено 2023-07-05 .
  16. ^ Рудра, Соурав (2023-07-05). «Проект LXD находит новый дом в Canonical». Это Фосс . Получено 2023-07-05 .
  17. ^ Паррот, Томас (25 августа 2023 г.). «LXD 5.17 выпущен». Ubuntu . Canonical.

Внешние ссылки