Environnement Linux isolé léger

15

Je veux un environnement Linux (invité) isolé sur mon ordinateur que je puisse gâcher sans me soucier de l'hôte. Par exemple, installez beaucoup de choses à partir de la source sans gestion de package, polluez les variables d'environnement d'environnement, etc., puis créez un autre environnement invité lorsque l'ancien invité est trop encombré.

Je me suis amusé à utiliser Virtualbox avec Tinycore linux, mais au moins la façon dont je l'utilise, je ne pense pas que la surcharge de Virtualbox soit entièrement nécessaire. Pour une chose, si possible, je voudrais utiliser le même noyau que mon hôte.

De plus, en parcourant le didacticiel Linux From Scratch, j'ai appris un peu chrootce qui semblait être ce que je cherchais. Pour être honnête, il y avait beaucoup de choses que je ne comprenais pas vraiment dans LFS, chroot étant l'un d'entre eux. J'essaierais de jouer avec chrootsi je n'avais pas si peur que ça gâche mon environnement actuel.

Je recherche donc un programme de virtualisation qui utilise le fait que je sois sur une linuxbox (j'utilise PinguyOS btw), pour accélérer la virtualisation, ou une référence sur la façon d'utiliser chroot comme terrain de jeu isolé.

math4tots
la source

Réponses:

16

Chroot est l'environnement le plus léger qui pourrait vous convenir. Il vous permet d'installer une autre distribution (ou une autre installation de la même distribution), avec les mêmes utilisateurs, avec la même configuration réseau, etc. Chroot ne fournit qu'une isolation grossière au niveau du système de fichiers. La navigation sur ce site pour chroot peut aider, si vous n'êtes toujours pas sûr de ce que chroot peut et ne peut pas faire.

Si vous cherchez la prochaine étape, LXC est maintenant inclus dans la ligne principale du noyau. Un invité LXC (appelé conteneur) possède son propre système de fichiers, processus et espace réseau. La racine dans le conteneur est également racine sur l'hôte; LXC protège contre de nombreuses actions accidentelles par une racine invitée mais pas contre une racine invitée malveillante (c'est une fonctionnalité prévue, regardez cet espace ).

VServer et OpenVZ sont d'autres technologies quelque peu similaires à LXC . Une fonction importante qu'OpenVZ fournit mais pas VServer ou LXC est les points de contrôle : vous pouvez prendre un instantané d'une machine en cours d'exécution et la restaurer plus tard. Encore un autre candidat est Linux en mode utilisateur , qui exécute un système Linux complet à l'intérieur d'un processus qui s'exécute en tant qu'utilisateur ordinaire dans l'hôte.

Aux fins d'expérimentation avec une autre installation de système d'exploitation, chroot est très bien. Si vous souhaitez exécuter des services dans l'installation expérimentale ou jouer avec la mise en réseau, optez pour LXC. Si vous voulez des instantanés, utilisez OpenVZ. Si vous voulez un noyau complètement séparé mais peu de mémoire, utilisez Linux en mode utilisateur. Si vous voulez des instantanés et un noyau séparé, utilisez VirtualBox.

Gilles 'SO- arrête d'être méchant'
la source
LXC prend désormais en charge les instantanés.
baptx
5

Docker facilite l'utilisation de LXC:

Fonctionnalités notables

Isolation du système de fichiers : chaque conteneur de processus s'exécute dans un système de fichiers racine complètement séparé.

Isolation des ressources : les ressources système telles que le processeur et la mémoire peuvent être allouées différemment à chaque conteneur de processus, à l'aide de cgroups.

Isolement du réseau : chaque conteneur de processus s'exécute dans son propre espace de noms réseau, avec une interface virtuelle et une adresse IP qui lui sont propres.

Copie sur écriture : les systèmes de fichiers racine sont créés à l'aide de la copie sur écriture, ce qui rend le déploiement extrêmement rapide, peu coûteux en mémoire et peu coûteux en disque.

Journalisation : les flux standard (stdout / stderr / stdin) de chaque conteneur de processus sont collectés et journalisés pour une récupération en temps réel ou par lots.

Gestion des modifications: les modifications apportées au système de fichiers d'un conteneur peuvent être validées dans une nouvelle image et réutilisées pour créer plus de conteneurs. Aucune configuration de modèle ou manuelle requise.

Shell interactif : docker peut allouer un pseudo-tty et l'attacher à l'entrée standard de n'importe quel conteneur, par exemple pour exécuter un shell interactif jetable.

Sous la capuche

Sous le capot, Docker est construit sur les composants suivants:

  • Les capacités de cgroup et d'espaces de noms du noyau Linux

  • AUFS, un puissant système de fichiers union avec des capacités de copie sur écriture

  • Le langage de programmation Go

  • lxc, un ensemble de scripts de commodité pour simplifier la création de conteneurs linux.

Janus Troelsen
la source
1
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article.
Anthon
@Anthon: Pourquoi n'est-ce pas une réponse? Un «environnement Linux (invité) isolé» demandé était «le même noyau que mon hôte».
Janus Troelsen
@JanusTroelsen, «Les réponses qui ne répondent pas fondamentalement à la question peuvent être supprimées. Cela inclut des réponses qui sont… à peine plus qu'un lien vers un site externe »- FAQ Veuillez expliquer ce que fait Docker et en quoi il diffère des autres logiciels similaires.
manatwork
2

Examinez les conteneurs OpenVZ ou Linux, qui implémentent tous deux un environnement pseudo-virtualisé léger avec des espaces utilisateurs uniques sur un noyau commun.

OpenVZ est plus mature à ce stade.

Rodger
la source
Oui, même utilisé en prod ... Je recommande Xen pour des utilisations plus sérieuses.
Aki
0

Cela peut peut-être vous aider: aufs : un système de fichiers d'unification multicouche avancé

Vous avez votre système au niveau inférieur. De plus, vous pouvez monter le système de fichiers aufs. Les modifications (écritures) sont effectuées sur ce système de fichiers aufs uniquement, sans changer le «vrai» système de fichiers en dessous.

Luis
la source