Легке ізольоване середовище Linux


15

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

Я весело використовував Virtualbox з Tinycore linux, але принаймні так, як я ним користуюся, я не думаю, що накладні витрати Virtualbox цілком необхідні. Для одного, якщо можливо, я хотів би використовувати те саме ядро, що і мій хост.

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

Тому я шукаю програму віртуалізації, яка використовує той факт, що я перебуваю на linuxbox (я використовую PinguyOS btw), щоб пришвидшити віртуалізацію чи посилання про те, як використовувати chroot як ізольований майданчик.

Відповіді:


16

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

Якщо ви шукаєте наступний крок, LXC тепер включений до основної лінії ядра. Гість LXC (який називається контейнером) має власну файлову систему, процес та мережевий простір. Корінь у контейнері також корінь на хості; LXC захищає від багатьох випадкових дій гостьового кореня, але не від зловмисного кореня гостя (це запланована функція, дивіться цей простір ).

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

Для експериментів з іншою установкою ОС chroot чудово. Якщо ви хочете запустити служби в експериментальній установці або пограти в мережу, перейдіть до LXC. Якщо ви хочете робити знімки, використовуйте OpenVZ. Якщо ви хочете повністю окреме ядро, але мало пам'яті, використовуйте користувальницький Linux-режим. Якщо ви хочете робити знімки та окреме ядро, використовуйте VirtualBox.


LXC зараз підтримує знімки.
baptx

5

Docker спрощує використання LXC:

Помітні функції

Ізоляція файлової системи : кожен контейнер процесу працює в абсолютно окремій кореневій файловій системі.

Ізоляція ресурсів : системні ресурси, такі як процесор та пам'ять, можуть бути розподілені по-різному на кожен контейнер процесу, використовуючи cgroups.

Ізольована мережа : кожен контейнер процесу працює у власному просторі імен мережі з власним віртуальним інтерфейсом та IP-адресою.

Копіювати-записувати : кореневі файлові системи створюються за допомогою копіювання-запис, що робить розгортання надзвичайно швидким, дешевим у пам’яті та дешевим на диску.

Ведення журналу : стандартні потоки (stdout / stderr / stdin) кожного технологічного контейнера збираються та реєструються для реального часу або пакетного пошуку.

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

Інтерактивна оболонка : докер може виділити псевдо-tty та приєднати до стандартного вводу будь-якого контейнера, наприклад, для запуску інтерактивної оболонки, що викидається.

Під капотом

Під капотом Docker побудований на таких компонентах:

  • Можливості групи та простору імен ядра Linux

  • AUFS, потужна файлова система об'єднання з можливостями копіювання при записі

  • Мова програмування Go

  • lxc, набір скриптів зручності для спрощення створення контейнерів Linux.


1
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх дописом.
Антон

@Anthon: Чому це не відповідь? Запитано було "ізольоване (гостьове) середовище Linux", яке "те саме ядро, що і мій хост".
Янус Троельсен

@JanusTroelsen, “Відповіді, які принципово не відповідають на питання, можуть бути видалені. Сюди входять відповіді, які… ледве більше, ніж посилання на зовнішній сайт ”- FAQ, будь ласка, поясніть, чим займається Docker і чим він відрізняється від іншого подібного програмного забезпечення.
манастирські роботи

2

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

На цьому етапі OpenVZ є більш зрілим.


Так, навіть використовується у продажі ... Я рекомендую Xen для більш серйозних звичаїв.
Акі

0

Можливо, це може вам допомогти: aufs : розширена багатошарова файлова система об’єднання

У вас система на нижньому рівні. Зверху можна встановити файлову систему aufs. Зміни (записи) здійснюються лише в цій файловій системі aufs, не змінюючи під цим «справжню» файлову систему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.