Ambiente linux isolado leve


15

Eu quero um ambiente Linux (convidado) isolado no meu computador que possa bagunçar sem me preocupar com o host. Por exemplo, instale muitas coisas da fonte sem gerenciamento de pacotes, polua as variáveis ​​de ambiente do ambiente, etc., e crie outro ambiente de convidado quando o hóspede antigo ficar muito bagunçado.

Eu me diverti um pouco usando o Virtualbox com o Tinycore linux, mas pelo menos da maneira que o uso, não acho que a sobrecarga do Virtualbox seja totalmente necessária. Por um lado, se possível, eu gostaria de usar o mesmo kernel que meu host.

Além disso, ao ler o tutorial Linux From Scratch, aprendi um pouco sobre o chrootque parecia ser o que eu estava procurando. Para ser sincero, havia muita coisa que eu realmente não entendia no LFS, sendo o chroot um deles. Eu tentaria brincar chrootse não tivesse tanto medo de atrapalhar meu ambiente atual.

Portanto, estou procurando um programa de virtualização que use o fato de estar em um linuxbox (estou usando o PinguyOS btw), para acelerar a virtualização ou uma referência sobre como usar o chroot como um playground isolado.

Respostas:


16

Chroot é o ambiente mais leve que pode ser adequado a você. Ele permite que você instale outra distribuição (ou outra instalação da mesma distribuição), com os mesmos usuários, com a mesma configuração de rede, etc. O Chroot fornece apenas algum isolamento bruto no nível do sistema de arquivos. Navegar neste site para chroot pode ajudar, se você ainda não tiver certeza do que o chroot pode ou não fazer.

Se você está procurando a próxima etapa, o LXC agora está incluído na linha principal do kernel. Um convidado LXC (chamado de contêiner) possui seu próprio sistema de arquivos, processo e espaço na rede. A raiz no contêiner também é raiz no host; O LXC protege contra muitas ações acidentais por uma raiz de convidado, mas não contra uma raiz de convidado mal-intencionada (esse é um recurso planejado, observe este espaço ).

Outras tecnologias que são um pouco semelhantes ao LXC são VServer e OpenVZ . Um recurso importante que o OpenVZ fornece, mas não o VServer ou o LXC, são os pontos de verificação : você pode tirar uma captura instantânea de uma máquina em execução e restaurá-la mais tarde. Outro candidato é o Linux no modo de usuário , que executa um sistema Linux completo dentro de um processo que é executado como um usuário comum no host.

Para testar outras instalações do SO, o chroot é bom. Se você deseja executar serviços na instalação experimental ou jogar com rede, vá para o LXC. Se você quiser capturas instantâneas, use o OpenVZ. Se você deseja um kernel completamente separado, mas com pouca sobrecarga de memória, use o Linux no modo de usuário. Se você quiser snapshots e um kernel separado, use o VirtualBox.


O LXC agora suporta snapshots.
baptx 29/01/19

5

O Docker facilita o uso do LXC:

Recursos notáveis

Isolamento do sistema de arquivos : cada contêiner de processo é executado em um sistema de arquivos raiz completamente separado.

Isolamento de recursos : recursos do sistema como CPU e memória podem ser alocados de maneira diferente para cada contêiner de processo, usando cgroups.

Isolamento de rede : cada contêiner de processo é executado em seu próprio namespace de rede, com uma interface virtual e endereço IP próprios.

Cópia na gravação : os sistemas de arquivos raiz são criados usando a cópia na gravação, o que torna a implantação extremamente rápida, barata na memória e no disco.

Registro : os fluxos padrão (stdout / stderr / stdin) de cada contêiner de processo são coletados e registrados para recuperação em tempo real ou em lote.

Gerenciamento de alterações: as alterações no sistema de arquivos de um contêiner podem ser confirmadas em uma nova imagem e reutilizadas para criar mais contêineres. Nenhum modelo ou configuração manual necessária.

Shell interativo : o docker pode alocar um pseudo-tty e anexar à entrada padrão de qualquer contêiner, por exemplo, para executar um shell interativo descartável.

Sob o capô

Sob o capô, o Docker é desenvolvido com os seguintes componentes:

  • Os recursos cgroup e namespacing do kernel Linux

  • AUFS, um poderoso sistema de arquivos de união com recursos de cópia na gravação

  • A linguagem de programação Go

  • lxc, um conjunto de scripts de conveniência para simplificar a criação de contêineres linux.


1
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
Anthon

@ Anthon: Por que não é uma resposta? Solicitado era um "ambiente Linux isolado (convidado)" daquele "mesmo kernel que meu host".
Janus Troelsen

@JanusTroelsen, “As respostas que não respondem fundamentalmente à pergunta podem ser removidas. Isso inclui respostas que são… pouco mais que um link para um site externo ”- Perguntas frequentes Por favor, explique o que o Docker faz e o que difere de outros softwares similares.
Manatwork

2

Observe os contêineres OpenVZ ou Linux, que implementam um ambiente pseudo-virtualizado leve com terras de usuário exclusivas em um kernel comum.

O OpenVZ está mais maduro nesta fase.


Sim, mesmo usado em prod ... Eu recomendo o Xen para usos mais sérios.
275 Aki

0

Talvez isso possa ajudá-lo: aufs : um sistema de arquivos avançado de unificação em várias camadas

Você tem seu sistema no nível mais baixo. Além disso, você pode montar o sistema de arquivos aufs. Modificações (gravações) são feitas apenas neste sistema de arquivos aufs, sem alterar o sistema de arquivos 'real' abaixo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.