Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux-containers:lxc [2017/11/09 13:37] mirocowlinux-containers:lxc [2018/06/21 23:50] (текущий) – [Расширенная поддержка] mirocow
Строка 1: Строка 1:
-====== Linux Containers ======+{{tag>linux container containers virtual}}
  
-===== LXC =====+====== LXC ======
  
-LXC является известным набором инструментов, шаблонов, библиотек и языковых привязок. Это довольно низкий уровень, очень гибкий и охватывающий почти каждую особенность сдерживания, поддерживаемой в разработкe ядра. +LXC это интерфейс в пространстве пользователя для функций сдерживания ядра Linux. Через мощный API и простые инструменты, он позволяет пользователям Linux легко создавать и управлять системными или прилагаемыми контейнерами.
-LXC является готовым для продакшена с LXC 1.0 c 5 летней поддержкой обновлений безопасности и исправлений (до апреля 2019 года).+
  
-[[lxc|Подробнее]]+===== Установка =====
  
-===== LXD =====+<code bash> 
 +$ mkdir  ~/.config/lxc 
 +$ cp  /etc/lxc/default.conf ~/.config/lxc/default.conf 
 +$ echo "lxc.id_map u 0 100000 65536" >> ~/.config/lxc/default.conf 
 +$ echo "lxc.id_map g 0 100000 65536" >> ~/.config/lxc/default.conf 
 +$ lxc-create -t debian -n my-container 
 +</code>
  
-LXD это новый опыт LXC. Предлагающий полностью свежую и интуитивно понятную работу с помощью всего одного инструмента: командной строки для управления своими контейнерами. Контейнерами можно управлять прозрачным образом по сети через API REST. Технология так же работает с развертыванием масштабных сред путем интеграции с OpenStack. +==== Контейнеры ====
-О LXD было объявлено в начале ноября 2014 года и по сей день он находится в очень активном развитии.+
  
-[[lxd|Подробнее]]+  * https://github.com/fgrehm/vagrant-lxc/wiki/Base-boxes 
 +  * https://github.com/fgrehm/vagrant-lxc-base-boxes 
 +  * debian 
 +  * fgrehm/precise64-lxc 
 +  * https://app.vagrantup.com/boxes/search?provider=lxc 
 +  * http://www.vagrantbox.es/
  
-===== CGManager ===== 
  
-CGManager - наш демон для упраления контролем групп. Он предназначен для работы с вложенными непривилегированными контейнерами позволяющий создавать и управлять своими контрольными группы через API DBus. +===== Управление =====
-CGManager был использован по умолчанию с LXC в Ubuntu с апреля 2014 года, а затем в других дистрибутивах, как только в них появлялась необходимость в работе c непривилегированными контейнерами.+
  
-[[cg-Manager|Подробнее]]+<code bash> 
 +$ lxc-start -n my-container -d 
 +$ lxc-info -n my-container 
 +$ lxc-attach -n my-container 
 +$ lxc-stop -n my-container 
 +$ lxc-destroy -n my-container 
 +</code> 
 + 
 +===== vagrant ===== 
 + 
 +Работа с контейнером чере vagrant 
 + 
 +<code bash> 
 +$ vagrant plugin install vagrant-lxc 
 +</code> 
 +===== Создание непривилегированного контейнера от root ===== 
 + 
 +Для запуска общесистемного непривилегированного контейнера (то есть, непривилегированного контейнера запущенного от root) вы должны следовать только части шагов ниже. 
 + 
 +А именно, вам нужно вручную выделить диапазон uid и gid для root в /etc/subuid and /etc/subgid. А затем задать этот диапазон в /etc/lxc/default.conf используя такие же записи lxc.id_map как выше. 
 + 
 +И все. Root не требует квоты на сетевые устройства и использует общий конфигурационный файл так что другие шаги не применяются. 
 + 
 +Любой контейнер создаваемый вами от root с этого момента будет запущен непривилегированным. 
 + 
 +===== Создание привилегированных контейнеров ===== 
 + 
 +Привилегированные контейнеры это контейнеры созданные root и запущенные от root. 
 + 
 +В зависимости от дистрибутива Linux, они могут быть защищены некоторым сбросом привилегий, профилями apparmor, контекстом selinux или политиками seccomp но все равно, процессы до сих пор запускаются от root и вы не должны давать root доступ внутри привилегированного контейнера недоверенной стороне. 
 + 
 +Если вам все еще необходимо создавать привилегированные контейнеры, это довольно просто. Не делайте ничего из настроек описанных выше и LXC будет создавать привилегированные контейнеры. 
 + 
 +Так: 
 + 
 +<code bash>$ sudo lxc-create -t download -n privileged-container</code> 
 +Создаст новый "privileged-container" привилегированный контейнер на вашей системе используя образ и загруженного шаблона. 
 +===== Особенности ===== 
 + 
 +Текущий LXC использует следующие функции ядра, что бы контейнизировать процессы: 
 + 
 +  * Пространство имен ядра (ipc, uts, mount, pid, сетевые и пользовательские) 
 +  * AppArmor и SELinux профили 
 +  * Условия Seccomp 
 +  * Chroots (используя pivot \ _root) 
 +  * Возможности ядра 
 +  * Контрольные группы (группы управления) (CGroups) 
 + 
 +LXC контейнеры часто рассматривается как что-то середнее между Chroot и полноценной виртуальной машинеой. Цель LXC является создание среды максимально близкой к стандартной установке Linux, но без необходимости в отдельном ядре. 
 + 
 +===== Компоненты ===== 
 + 
 +LXC в настоящее время состоит из нескольких отдельных компонентов: 
 +  * The liblxc библиотека 
 + 
 +Несколько языковых привязок для API: 
 + 
 +  * Python3 (in-tree, поддержка в 1.0.x) 
 +  * Lua (in-tree, поддержка в 1.0.x) 
 +  * [Go] (https://github.com/lxc/go-lxc) 
 +  * [Ruby] (https://github.com/lxc/ruby-lxc) 
 +  * [Python2] (https://github.com/lxc/python2-lxc) 
 +  * [Haskell] (https://github.com/fizruk/lxc) 
 + 
 +Набор стандартных инструментов для управления контейнерами 
 +Шаблоны контейнеров распространения 
 + 
 +===== Лицензирование ===== 
 + 
 +LXC это свободное программное обеспечение, большинство из кода распространяется на условиях лицензии GNU LGPLv2.1 +, некоторые части Android совместимости, выпускаются под стандартную 2-п лицензии BSD, и некоторые бинарные файлы и шаблоны выпущен под лицензией GNU GPLv2. 
 + 
 +Лицензия по умолчанию для проекта является GNU LGPLv2.1 +. 
 + 
 +===== Поддержка ===== 
 + 
 +Стабильная поддержка релиза LXC опирается на дистрибутивы и их самостоятельные наработки, для внесения стабильных исправлений и обновлений безопасности. 
 + 
 +Исходя из потребностей и имеющихся ресурсов из различных дистрибутивов, особые версии LXC могут заказать долгосрочную поддержку с частыми обновлениями исправлений. 
 + 
 +Другие релизы, как правило, поддерживаются на основе максимальных усилий, как правило, это означает, до выхода следующего стабильного релиза. 
 + 
 +Коммерческая поддержка для LXC на Ubuntu LTS-релизов могут быть получены из [Canonical Ltd(http://www.canonical.com). 
 + 
 +===== Расширенная поддержка ===== 
 + 
 +На данный момент, только релиз как LXC 1.0, который был выпущен в феврале 2014 года, будет поддерживаться до апреля 2019 года (немного более 5 лет). 
 + 
 +Это стало возможным благодаря [Canonical Ltd] (http://www.canonical.com) и Ubuntu, которые включили LXC 1.0 в Ubuntu 14.04 LTS (Long Term Support) и работали в тесном сотрудничестве с LXC поддерживая стабильную 1.0 ветку. 
 + 
 +Улучшить этот вебсайтНаверх 
 +Содержимое распространяется по лицензии Creative Commons CC BY NC SA 
 +Проект спонсируется Canonical Ltd. 
 + 
 +====== Другие системы виртуализации ====== 
 + 
 +{{topic>[virtual]}}