Leichte isolierte Linux-Umgebung


15

Ich möchte eine isolierte (Gast-) Linux-Umgebung auf meinem Computer, in der ich Fehler machen kann, ohne mich um den Host kümmern zu müssen. Installieren Sie z. B. viele Dinge aus dem Quellcode, ohne die Paketverwaltung, verschmutzen Sie Umgebungsvariablen usw., und erzeugen Sie dann eine andere Gastumgebung, wenn der alte Gast zu überladen ist.

Ich hatte ein bisschen Spaß mit Virtualbox unter Tinycore Linux, aber zumindest so, wie ich es benutze, halte ich den Virtualbox-Overhead nicht für unbedingt notwendig. Zum einen möchte ich, wenn möglich, den gleichen Kernel wie mein Host verwenden.

Als ich das Linux From Scratch-Tutorial durchgearbeitet habe, habe ich auch einiges über Linux gelernt. Es chrootscheint, als wäre es das, wonach ich suche. Um ehrlich zu sein, gab es eine Menge, die ich in LFS nicht wirklich verstand, da chroot einer von ihnen war. Ich würde versuchen, chrootdamit herumzuspielen, wenn ich nicht so viel Angst hätte, dass es meine aktuelle Umgebung durcheinander bringen könnte.

Ich suche nach einem Virtualisierungsprogramm, das die Tatsache nutzt, dass ich auf einer Linuxbox bin (ich verwende übrigens PinguyOS), um die Virtualisierung zu beschleunigen, oder nach einer Referenz, wie man chroot als isolierten Spielplatz einsetzt.

Antworten:


16

Chroot ist die leichteste Umgebung, die Ihnen passen könnte. Sie können eine andere Distribution (oder eine andere Installation derselben Distribution) mit denselben Benutzern, derselben Netzwerkkonfiguration usw. installieren. Chroot bietet nur eine grobe Isolierung auf Dateisystemebene. Das Durchsuchen dieser Site nach Chroot kann hilfreich sein, wenn Sie sich immer noch nicht sicher sind, was Chroot kann und was nicht.

Wenn Sie nach dem nächsten Schritt suchen, ist LXC jetzt in der Kernel-Hauptzeile enthalten. Ein LXC-Gast (Container genannt) verfügt über ein eigenes Dateisystem, einen eigenen Prozess und einen eigenen Netzwerkspeicher. Root im Container ist auch root auf dem Host. LXC schützt vor vielen versehentlichen Aktionen eines Gaststamms, jedoch nicht vor einem böswilligen Gaststamm (dies ist eine geplante Funktion, achten Sie auf diesen Bereich ).

Andere Technologien, die LXC etwas ähnlich sind, sind VServer und OpenVZ . Eine wichtige Funktion von OpenVZ, jedoch nicht von VServer oder LXC, sind Checkpoints : Sie können einen Snapshot eines laufenden Computers erstellen und später wiederherstellen. Ein weiterer Kandidat ist Linux im Benutzermodus , das ein vollständiges Linux-System innerhalb eines Prozesses ausführt, der als normaler Benutzer auf dem Host ausgeführt wird.

Zum Experimentieren mit einer anderen Betriebssysteminstallation ist chroot in Ordnung. Wenn Sie Dienste in der experimentellen Installation ausführen oder mit dem Netzwerk spielen möchten, wählen Sie LXC. Wenn Sie Schnappschüsse möchten, verwenden Sie OpenVZ. Wenn Sie einen vollständig separaten Kernel, aber wenig Speicherplatz benötigen, verwenden Sie Linux im Benutzermodus. Wenn Sie Snapshots und einen separaten Kernel benötigen, verwenden Sie VirtualBox.


LXC unterstützt jetzt Snapshots.
Taufe

5

Docker vereinfacht die Verwendung von LXC:

Bemerkenswerte Eigenschaften

Dateisystemisolation : Jeder Prozesscontainer wird in einem vollständig separaten Root-Dateisystem ausgeführt.

Ressourcenisolierung : Systemressourcen wie CPU und Arbeitsspeicher können mithilfe von cgroups jedem Prozesscontainer unterschiedlich zugewiesen werden.

Netzwerkisolation : Jeder Prozesscontainer wird in einem eigenen Netzwerknamespace mit einer eigenen virtuellen Schnittstelle und IP-Adresse ausgeführt.

Copy-on-Write : Root-Dateisysteme werden mithilfe von Copy-on-Write erstellt, was die Bereitstellung extrem schnell, speicher- und festplattensparend macht.

Protokollierung : Die Standard-Streams (stdout / stderr / stdin) jedes Prozesscontainers werden gesammelt und für den Echtzeit- oder Batch-Abruf protokolliert.

Änderungsmanagement : Änderungen am Dateisystem eines Containers können in ein neues Image übernommen und erneut verwendet werden, um weitere Container zu erstellen. Keine Vorlage oder manuelle Konfiguration erforderlich.

Interaktive Shell : Docker kann eine Pseudotty zuweisen und an die Standardeingabe eines beliebigen Containers anhängen, um beispielsweise eine interaktive Wegwerf-Shell auszuführen.

Unter der Haube

Docker basiert unter der Haube auf den folgenden Komponenten:

  • Die cgroup- und Namespacing-Funktionen des Linux-Kernels

  • AUFS, ein leistungsstarkes Union-Dateisystem mit Copy-on-Write-Funktionen

  • Die Programmiersprache Go

  • lxc, eine Reihe von praktischen Skripten zur Vereinfachung der Erstellung von Linux-Containern.


1
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag.
Anthon

@Anthon: Warum ist es keine Antwort? Angefordert wurde eine "isolierte (Gast-) Linux-Umgebung", die "denselben Kernel wie mein Host" hat.
Janus Troelsen

@JanusTroelsen, „Antworten, die die Frage nicht grundsätzlich beantworten, werden möglicherweise entfernt. Dies schließt Antworten ein, die kaum mehr sind als ein Link zu einer externen Site. “- FAQ Bitte erläutern Sie, was Docker macht und was es von anderer ähnlicher Software unterscheidet.
manatwork

2

Sehen Sie sich OpenVZ- oder Linux-Container an, die beide eine einfache, pseudovirtualisierte Umgebung mit eindeutigen Benutzerlandschaften auf einem gemeinsamen Kernel implementieren.

OpenVZ ist in dieser Phase ausgereifter.


Ja, sogar in Produkten verwendet ... Ich empfehle Xen für ernstere Verwendungszwecke.
Aki

0

Vielleicht kann dir das helfen: aufs : ein erweitertes mehrschichtiges Unification- Dateisystem

Sie haben Ihr System in der unteren Ebene. Darüber können Sie das aufs-Dateisystem mounten. Änderungen (Schreibvorgänge) werden nur in diesem Dateisystem vorgenommen, ohne das darunter befindliche "echte" Dateisystem zu ändern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.