Eventualmente, estou mudando do FreeBSD/Freenas para o Debian/Freenas Scale, mas a questão é mais ampla. Qual seria o equivalente para jails em sistemas Linux.
Agora, a maioria recomendará o docker ou alguma variante dele. Eu concordaria, mas eu realmente gosto de como as prisões funcionam, como posso ir para o shell e alterar/instalar o que preciso. O problema é (AFAIK) que não é possível pisar em um docker como uma prisão, então ele teria que ser pré-configurado, etc.
Então a próxima opção é VM, isso funcionaria, suponho, mas parece complicado demais criar VM para cada aplicativo, além disso, não desperdiçará recursos?
Portanto, estou procurando recomendações sobre como substituir minhas prisões atuais para manter o máximo de funcionalidade que elas têm agora.
Responder1
Se precisar usar um determinado sistema operacional por motivos de design, você precisará portar ferramentas para ele.
Não fazemos recomendações de produtos, então você precisará encontrar ou criar ferramentas de gerenciamento de contêineres. As prisões são definitivamente diferentes dos contêineres Linux nos detalhes de implementação. No entanto, uma comparação da tecnologia de contêineres mostrará que elas são semelhantes em alto nível.
Prisões do FreeBSDsão chroot aprimorados com isolamento de outros recursos. Além de ferramentas para gerenciar o ciclo de vida, instalar a partir da mídia, iniciar e parar.
O mecanismo de isolamento semelhante do Linux éespaços para nome. Rede, usuário, montagem, IPC, uname. A maioria das ferramentas de contêiner construídas sobre elas (há várias opções) impõem suas próprias ideias de como tudo deve funcionar; Docker não é apenas um chroot. Você pode não gostar de como o Docker faz imagens ou redes.
No entanto, é possível usar namespaces Linux sem o que você considera um contêiner.Página da Wikipedia sobre namespacestem uma ideia interessante de adicionar isolamento de processo ao chroots:
SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"
Não incluídas as etapas de criação deste chroot e instalação de coisas nele.
Responder2
você pode querer explicar com mais detalhes quais são os recursos que você gosta nas prisões que você sente falta nos contêineres. Eu pessoalmente executo contêineres LXC e eles têm sua personalidade (debian ou ubuntu em um host debian). Posso SSH neles, eles têm sua própria pilha de IP segregada da pilha de IP do host graças aos namespaces de rede e posso instalar e executar neles seu próprio conjunto de aplicativos sem interações com aplicativos de hosts graças ao namespace de processo.