Instâncias de FreeBSD Jails ou Docker

18

Quais são as principais diferenças entre as cadeias no FreeBSD e o Docker no Linux? Um é consideravelmente mais seguro ou mais eficiente que o outro? As cadeias são muito mais antigas que as instâncias do Docker, portanto, o próprio código pode ser considerado mais seguro. Mas as prisões nunca "pegaram", então talvez elas não sejam tão boas quanto as instâncias do Docker? Ou isso é apenas porque o Linux é muito mais popular que o FreeBSD?

Simba
fonte

Respostas:

24

Vou abordar alguns dos aspectos das cadeias do FreeBSD e do Linux Docker, de como eles são semelhantes e como são diferentes.

  • ambos têm o mesmo objetivo: é uma implementação de virtualização leve, quando você executa o aplicativo em um compartimento separado e isolado no mesmo kernel, e aqui as semelhanças terminam e as diferenças começam.
  • O Docker é uma ferramenta usada principalmente para executar imagens binárias preparadas que podem ser obtidas de vários repositórios públicos ou privados. A maioria das pessoas usa dessa maneira. Menos pessoas constroem as suas próprias e as carregam nos repositórios.
  • As cadeias do FreeBSD são mais parecidas com o LXC no Linux: é um método de criar seu contêiner do zero. Você o cria, instala o software e isso é tudo - pode ser tratado como um FreeBSD dentro do FreeBSD. Não há maneira fácil de exportar esse contêiner como um único software, como no Docker. Portanto, praticamente todas as pessoas que usam o FreeBSD, ao contrário, sempre constroem seu próprio pedaço de FreeBSD dentro de um container a partir do zero (ou seja, do sistema básico instalado), instalando software do sistema FreeBSD Ports ou da fonte. As cadeias do FreeBSD, portanto, são menos amigáveis ​​e têm maior custo de uso inicial.
  • da mesma maneira que os contêineres do LXC são persistentes, as cadeias do FreeBSD também são persistentes. Todas as alterações permanecem intactas entre as botas. Como eu disse, é apenas uma parte do sistema operacional dentro do mesmo sistema operacional (embora as versões do software da terra do usuário possam diferir até que a ABI seja mantida no kernel do FreeBSD). Isso significa que você não pode confirmar as alterações - elas são confirmadas uma vez criadas.
  • de todas as alternativas acima, é óbvio que os contêineres do FreeBSD não podem ter sua camada de orquestração semelhante, como o Docker: não há portas publicando, não há volumes, não há links ou meta-conexões entre diferentes cadeias. Somente as interfaces que o sistema operacional em rede fornece: soquetes de rede, soquetes unix, pontos de montagem comuns.
  • não há limitações, é claro, sobre quem pode se comunicar com quem dentro das cadeias do FreeBSD, como não há no Docker.
  • você pode executar imagens nativas do docker no FreeBSD, porque existe pelo menos suporte parcial ao docker no FreeBSD, mas, como o Linux é gratuito, aconselho isso contra ele (e eu amo muito e profundamente o FreeBSD), porque elas serão executadas através da compatibilidade do Linux (fornecida com um módulo do kernel do FreeBSD) que fornece algumas limitações conhecidas.
drookie
fonte
Para mais informações sobre o docker no FreeBSD. Ele costumava funcionar dentro de uma prisão (imagine o duplo isolamento :)), e foi possível como porta pelos principais desenvolvedores do FreeNAS, pois eles queriam usá-lo nessa distribuição. Aqui está um artigo deles falando sobre isso e a antiga página wiki . Desde então, eles pararam de mantê-lo e parece não funcionar mais. Mais a seguir no próximo comentário.
Vrakfall
Aqui está a última postagem do fórum falando sobre o estado do Docker no FreeBSD . Adereços para Phishfry lá para algumas das informações que deixei aqui. Ainda é possível usar o docker no FreeBSD executando-o em um Linux virtualizado (bhyve, virtualbox, etc ...) e usando a porta somente cliente , que ainda é mantida e funcionando, para conectar-se a ela. Afinal, o boot2docker foi originalmente criado para usar o docker dessa maneira no MacOS.
Vrakfall
E sabemos que o MacOS é um porto (vergonhoso, tosse , esse é o meu pouco opinativo) do BSD . Mas tudo isso, é claro, é apenas para um ambiente de desenvolvimento e não pode de forma alguma ser usado na produção. Isto é para quem quer continuar trabalhando no FreeBSD e ser capaz de desenvolver coisas de encaixe para o seu trabalho / hobby / o que for.
Vrakfall
Ah, e eu esqueci de dizer, mas você mencionou, a docker-freebsdporta antiga estava de fato usando o Linuxulator do FreeBSD .
Vrakfall
Não é apenas o desejo de executar imagens públicas. Por exemplo, se eu não quiser gastar inúmeras horas para aprender segurança, subo para o dockerhub e escrevo em "hardened": hub.docker.com/search?q=hardened&type=image e corro algo a partir daí. Aumenta bastante a produtividade em comparação com a criação do meu próprio contêiner FreeBSD do zero, sem ser um especialista em segurança. Mas se você tiver uma solução alternativa igualmente rápida, compartilhe! :-)
inf3rno 13/10/19