Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>linux container containers virtual}} ====== LXC ====== LXC это интерфейс в пространстве пользователя для функций сдерживания ядра Linux. Через мощный API и простые инструменты, он позволяет пользователям Linux легко создавать и управлять системными или прилагаемыми контейнерами. ===== Установка ===== <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> * debian - ===== Создание непривилегированного контейнера от root ===== Для запуска общесистемного непривилегированного контейнера (то есть, непривилегированного контейнера запущенного от root) вы должны следовать только части шагов ниже. А именно, вам нужно вручную выделить диапазон uid и gid для root в /etc/subuid and /etc/subgid. А затем задать этот диапазон в /etc/lxc/default.conf используя такие же записи lxc.id_map как выше. И все. Root не требует квоты на сетевые устройства и использует общий конфигурационный файл так что другие шаги не применяются. Любой контейнер создаваемый вами от root с этого момента будет запущен непривилегированным. ===== Управление ===== <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> ===== Особенности ===== Текущий 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. СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal