O que são os contêineres do Linux, afinal? [fechadas]

1

Eu tenho lido muitas documentações em containers Linux. Eu também testei a forma CentOS e o Forma do Ubuntu .

Wikipédia diz

it is an operating system–level virtualization.

Linuxcontainers.org diz

LXC is a userspace interface for the Linux kernel containment features.

Eu não posso deixar claro.

  1. O LXC é apenas uma interface do usuário e há outro módulo do kernel que fornece os recursos do contêiner.
  2. Ou é algo do LXC que é corrigido no kernel quando o pacote é instalado e também fornece utilitários de espaço do usuário.
  3. Ao experimentá-lo no CentOS, a instalação lxc package não foi necessária, embora esteja disponível nos repositórios.
  4. No CentOS, sem instalar lxc , o daemon libvirt é capaz de se conectar a lxc:/// usando os utilitários de comando libvirt. Então, existe um módulo lxc no kernel? Mas eu não encontrei nenhum com lsmod .
  5. MAS, que é esse módulo no kernel, que fornece conteinerização?
por beginer 21.07.2014 / 18:11

2 respostas

4

Este é um tópico confuso porque não é uma coisa que "fornece conteinerização". Os contêineres são um conceito geral implementado no kernel Linux usando namespaces para isolamento de processos, cgroups para gerenciamento de recursos e possivelmente mais - como o SELinux para segurança.

As ferramentas lxc são uma interface possível para isso - você pode pensar nisso como um front-end, embora possa ser melhor pensar nisso como "front-end plus glue". libvirt-lxc é uma ferramenta semelhante, mas totalmente diferente, e systemd-nspawn ainda outro.

E o Docker de contêineres hot-topic do linux é também uma camada de interface de usuário e cola, mas pode realmente ficar acima de vários outros backends, incluindo os itens acima - veja esta postagem de blog um pouco datada sobre o Docker 0.9 e, em particular, o gráfico explicando libcontainer .

Dan Walsh deu uma palestra sobre isso no Usenix '13, que pode ser útil: link (Isenção de responsabilidade: Dan é meu colega de trabalho na Red Hat.)

    
por 21.07.2014 / 18:20
3
  1. Sim e não. O LXC é apenas uma interface de usuário, mas não para um módulo, mas para alguns recursos do kernel. Principalmente namespaces de processo, usuário, rede, montagens, uts e ipcs, bem como cgroups e outras coisas.

  2. Não.

  3. Correto, você pode usar os mesmos recursos ou princípios do kernel usando outras ferramentas de administração.

  4. Como eu disse na minha primeira mensagem, ele usa recursos específicos do kernel Linux que são integrados, não requer nenhum módulo.

  5. Nenhum. Bem, existem certos recursos que você precisa ativar ao construir o kernel, mas eles não são exatamente módulos. O CentOS (que é construído a partir do RHEL) os possui em sua configuração do kernel.

por 21.07.2014 / 18:18