Lekkie izolowane środowisko linux

15

Chcę odizolować (gościa) środowisko Linux na moim komputerze, które mogę zepsuć bez martwienia się o hosta. Np. Zainstaluj wiele rzeczy ze źródła bez zarządzania pakietami, zanieczyszczaj zmienne środowiskowe itp., A następnie spawnuj inne środowisko gościa, gdy stary gość będzie zbyt zagracony.

Miałem trochę zabawy z Virtualbox z linuxem Tinycore, ale przynajmniej sposób, w jaki go używam, nie uważam, że obciążenie Virtualbox jest całkowicie konieczne. Po pierwsze, jeśli to możliwe, chciałbym użyć tego samego jądra, co mój host.

Ponadto, kiedy przejrzałem samouczek Linux From Scratch, dowiedziałem się trochę chroot, co wydawało się, że może być tym, czego szukam. Szczerze mówiąc, było wiele rzeczy, których tak naprawdę nie rozumiałem w LFS, chroot był jednym z nich. Spróbowałbym się bawić, chrootgdybym nie bał się, że może to zepsuć moje obecne środowisko.

Szukam więc programu do wirtualizacji, który wykorzystuje fakt, że korzystam z systemu Linux (korzystam z PinguyOS btw), aby przyspieszyć wirtualizację, lub informację o tym, jak używać chroot jako izolowanego placu zabaw.

math4tots
źródło

Odpowiedzi:

16

Chroot to najlżejsze środowisko, które może ci odpowiadać. Pozwala zainstalować inną dystrybucję (lub inną instalację tej samej dystrybucji), z tymi samymi użytkownikami, z tą samą konfiguracją sieci itp. Chroot zapewnia jedynie pewną izolację na poziomie systemu plików. Przeglądanie tej strony w poszukiwaniu chroota może pomóc, jeśli nadal nie jesteś pewien, co chroot może, a czego nie.

Jeśli szukasz następnego kroku, LXC jest teraz włączony do głównej linii jądra. Gość LXC (zwany kontenerem) ma własny system plików, proces i przestrzeń sieciową. Root w kontenerze jest również root na hoście; LXC chroni przed wieloma przypadkowymi działaniami root-gościa, ale nie przed złośliwym rootem-gościem (jest to zaplanowana funkcja, uważaj na to miejsce ).

Inne technologie nieco podobne do LXC to VServer i OpenVZ . Ważną funkcją udostępnianą przez OpenVZ, ale nie VServer ani LXC, są punkty kontrolne : możesz zrobić migawkę uruchomionej maszyny i przywrócić ją później. Jeszcze innym kandydatem jest Linux w trybie użytkownika , który uruchamia kompletny system Linux w procesie, który działa jako zwykły użytkownik na hoście.

W celu eksperymentowania z inną instalacją systemu operacyjnego chroot jest w porządku. Jeśli chcesz uruchomić usługi w instalacji eksperymentalnej lub grać w sieci, wybierz LXC. Jeśli chcesz migawki, użyj OpenVZ. Jeśli chcesz mieć całkowicie oddzielne jądro, ale niewielkie obciążenie pamięci, Linux w trybie użytkownika. Jeśli potrzebujesz migawek i osobnego jądra, użyj VirtualBox.

Gilles „SO- przestań być zły”
źródło
LXC obsługuje teraz migawki.
baptx
5

Docker ułatwia korzystanie z LXC:

Ważne funkcje

Izolacja systemu plików : każdy kontener procesu działa w całkowicie oddzielnym głównym systemie plików.

Izolacja zasobów : zasoby systemowe, takie jak jednostka centralna i pamięć, mogą być przydzielane inaczej do każdego kontenera procesu, przy użyciu grup cgroups.

Izolacja sieci : każdy kontener procesu działa we własnej sieciowej przestrzeni nazw z własnym interfejsem wirtualnym i adresem IP.

Kopiowanie przy zapisie : główne systemy plików są tworzone przy użyciu funkcji kopiowania przy zapisie, co sprawia, że ​​wdrażanie jest niezwykle szybkie, tani w pamięci i tani na dysku.

Rejestrowanie : standardowe strumienie (stdout / stderr / stdin) z każdego kontenera procesowego są gromadzone i rejestrowane w celu pobrania w czasie rzeczywistym lub partii.

Zarządzanie zmianami: zmiany w systemie plików kontenera można zatwierdzić w nowym obrazie i użyć ponownie, aby utworzyć więcej kontenerów. Nie wymaga szablonowania ani ręcznej konfiguracji.

Interaktywna powłoka : doker może przydzielić pseudo-tty i dołączyć do standardowego wejścia dowolnego kontenera, na przykład w celu uruchomienia interaktywnej powłoki.

Pod maską

Pod maską Docker opiera się na następujących komponentach:

  • Możliwości cgroup i przestrzeni nazw jądra Linux

  • AUFS, potężny unijny system plików z funkcjami kopiowania przy zapisie

  • Język programowania Go

  • lxc, zestaw skryptów wygody ułatwiających tworzenie kontenerów linuksowych.

Janus Troelsen
źródło
1
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienia, zostaw komentarz pod postem.
Anthon
@Anthon: Dlaczego to nie jest odpowiedź? Zażądano „odizolowanego (gościa) środowiska Linux” tego „tego samego jądra co mój host”.
Janus Troelsen
@JanusTroelsen: „Odpowiedzi, które zasadniczo nie odpowiadają na pytanie, mogą zostać usunięte. Obejmuje to odpowiedzi, które są… ledwie więcej niż linkiem do strony zewnętrznej ”- FAQ Wyjaśnij, co robi Docker i czym różni się od innych podobnych programów.
manatwork
2

Zajrzyj do kontenerów OpenVZ lub Linux, z których oba wdrażają lekkie, pseudo-wirtualizowane środowisko z unikalnymi obszarami użytkownika na wspólnym jądrze.

Na tym etapie OpenVZ jest bardziej dojrzały.

Rodger
źródło
Tak, nawet używany w prod ... Polecam Xen do poważniejszych zastosowań.
Aki,
0

Może to może ci pomóc: aufs : zaawansowany wielowarstwowy system plików unifikacyjnych

Masz swój system na niższym poziomie. Ponadto możesz zamontować system plików Aufs. Modyfikacje (zapisy) są wprowadzane tylko w tym systemie plików Aufs, bez zmiany „prawdziwego” systemu plików poniżej.

Luis
źródło