Легкая изолированная среда Linux

15

Я хочу изолированную (гостевую) среду Linux на моем компьютере, которую я могу испортить, не беспокоясь о хосте. Например, установить много вещей из исходного кода без управления пакетами, загрязнить переменные среды среды и т. Д., А затем породить другую гостевую среду, когда старый гость становится слишком загроможденным.

Я немного повеселился, используя Virtualbox с Tinycore Linux, но, по крайней мере, так, как я его использую, я не думаю, что издержки Virtualbox абсолютно необходимы. Во-первых, если возможно, я бы хотел использовать то же ядро, что и мой хост.

Кроме того, когда я пробежался по учебнику Linux From Scratch, я немного узнал о том chroot, что, возможно, это то, что я ищу. Честно говоря, в LFS я многое не понял, в том числе и chroot. Я бы попытался поиграть, chrootесли бы не боялся, что это может испортить мою нынешнюю обстановку.

Поэтому я ищу программу виртуализации, которая использует тот факт, что я нахожусь на linuxbox (я использую PinguyOS, кстати), для ускорения виртуализации, или справку о том, как использовать chroot в качестве изолированной игровой площадки.

math4tots
источник

Ответы:

16

Chroot - это легчайший вес, который может вам подойти. Он позволяет вам установить другой дистрибутив (или другую инсталляцию того же дистрибутива) с теми же пользователями, с той же сетевой конфигурацией и т. Д. Chroot обеспечивает лишь некоторую грубую изоляцию на уровне файловой системы. Просмотр сайта для chroot может помочь, если вы все еще не уверены, что chroot может и не может сделать.

Если вы ищете следующий шаг, LXC теперь включен в основную ветку ядра. Гость LXC (называемый контейнером) имеет собственную файловую систему, процесс и сетевое пространство. Root в контейнере также root на хосте; LXC защищает от многих случайных действий гостевого корня, но не от вредоносного гостевого корня (это запланированная функция, следите за этим пространством ).

Другими технологиями, которые чем-то похожи на LXC, являются VServer и OpenVZ . Важной функцией, которую предоставляет OpenVZ, но не VServer или LXC, являются контрольные точки : вы можете сделать снимок работающей машины и восстановить его позже. Еще одним кандидатом является пользовательский режим Linux , который запускает полную систему Linux внутри процесса, который запускается как обычный пользователь на хосте.

В целях экспериментов с установкой другой ОС, chroot подходит. Если вы хотите запустить службы в экспериментальной установке или поиграть с сетью, выберите LXC. Если вы хотите снимки, используйте OpenVZ. Если вам нужно полностью отдельное ядро, но с небольшим объемом памяти, используйте пользовательский режим Linux. Если вы хотите снимки и отдельное ядро, используйте VirtualBox.

Жиль "ТАК - прекрати быть злым"
источник
LXC теперь поддерживает снимки.
baptx
5

Docker облегчает использование LXC:

Известные особенности

Изоляция файловой системы : каждый контейнер процессов работает в совершенно отдельной корневой файловой системе.

Изоляция ресурса: системные ресурсы, такие как процессор и память, могут быть распределены по-разному для каждого контейнера процесса, используя cgroups.

Изоляция сети : каждый контейнер процессов работает в своем собственном пространстве имен сети с собственным виртуальным интерфейсом и IP-адресом.

Копирование при записи : корневые файловые системы создаются с использованием копирования при записи, что делает развертывание чрезвычайно быстрым, дешевым в памяти и дешевым диском.

Ведение журнала : стандартные потоки (stdout / stderr / stdin) каждого контейнера процессов собираются и регистрируются для поиска в режиме реального времени или в пакетном режиме.

Управление изменениями: изменения в файловой системе контейнера могут быть зафиксированы в новом образе и использованы повторно для создания большего количества контейнеров. Нет шаблонов или ручная настройка не требуется.

Интерактивная оболочка : docker может выделить псевдо-tty и присоединить к стандартному вводу любого контейнера, например, для запуска одноразовой интерактивной оболочки.

Под капотом

Под капотом Docker построен на следующих компонентах:

  • Возможности cgroup и пространства имен ядра Linux

  • AUFS, мощная объединенная файловая система с возможностями копирования при записи

  • Язык программирования Go

  • lxc, набор удобных сценариев, упрощающих создание контейнеров linux.

Янус Троелсен
источник
1
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
Антон
@Anthon: Почему это не ответ? Запрошено было «изолированное (гостевое) окружение Linux», «то же ядро, что и мой хост».
Янус Троелсен
@JanusTroelsen, «Ответы, которые не дают принципиального ответа на вопрос, могут быть удалены. Это включает ответы, которые… едва ли больше, чем ссылка на внешний сайт »- FAQ. Пожалуйста, объясните, что делает Docker и чем он отличается от других подобных программ.
manatwork
2

Изучите контейнеры OpenVZ или Linux, которые реализуют легковесную псевдовиртуализированную среду с уникальными пользовательскими областями на общем ядре.

OpenVZ более зрелый на данном этапе.

Rodger
источник
Да, даже используется в Prod ... Я рекомендую Xen для более серьезных использования.
Аки
0

Может быть, это поможет вам: aufs : продвинутая многослойная файловая система объединения

Ваша система находится на нижнем уровне. Кроме того, вы можете смонтировать файловую систему aufs. Изменения (записи) производятся только в этой файловой системе aufs, без изменения «реальной» файловой системы внизу.

Луис
источник