web-dev-qa-db-fra.com

Instances FreeBSD Jails ou Docker

Quelles sont les principales différences entre les prisons sous FreeBSD et Docker sous Linux? L'un est-il considérablement plus sûr ou plus performant que l'autre? Les prisons sont bien plus anciennes que les instances Docker, donc le code lui-même pourrait être considéré comme plus sécurisé. Mais les prisons n'ont jamais "pris", alors peut-être qu'elles ne sont pas aussi bonnes que les instances Docker? Ou est-ce juste parce que Linux est tellement plus populaire que FreeBSD?

17
Simba

Je vais aborder certains des aspects des prisons FreeBSD et Linux Docker, comment ils sont similaires et comment ils sont différents.

  • les deux servent le même objectif: c'est une implémentation de la virtualisation légère, lorsque vous exécutez l'application dans un compartiment séparé et isolé sous le même noyau, et ici les similitudes s'arrêtent et les différences commencent
  • Docker est un outil utilisé principalement pour exécuter des images binaires préparées que l'on peut obtenir à partir de divers référentiels publics ou privés. La plupart des gens l'utilisent de cette façon. Moins de personnes construisent les leurs et les téléchargent ensuite dans ces référentiels.
  • Les prisons FreeBSD ressemblent plus à LXC sous Linux: c'est une méthode pour créer votre conteneur à partir de zéro. Vous le créez, installez le logiciel dedans, et c'est à peu près tout - il peut être traité comme un FreeBSD dans FreeBSD. Il n'y a pas de moyen facile d'exporter ce conteneur en tant que logiciel unique, comme dans Docker. Donc, à peu près toutes les personnes qui utilisent FreeBSD, au contraire, construisent toujours leur propre morceau de FreeBSD à l'intérieur d'un conteneur à partir de zéro (c'est-à-dire à partir du système de base installé), en installant des logiciels à partir du système FreeBSD Ports ou à partir de la source. Les prisons FreeBSD sont donc moins conviviales et ont un coût d'utilisation de démarrage plus élevé.
  • de la même manière que les conteneurs LXC sont persistants, les prisons FreeBSD sont également persistantes. Tous les changements restent intacts entre les bottes. Comme je l'ai dit, ce n'est qu'un morceau de système d'exploitation à l'intérieur du même système d'exploitation (bien que les versions du logiciel utilisateur puissent différer jusqu'à ce que l'ABI soit maintenu dans le noyau FreeBSD). Cela signifie que vous ne pouvez pas valider les modifications - elles sont validées une fois qu'elles sont créées.
  • de tout ce qui précède, il est évident que les conteneurs FreeBSD ne peuvent pas avoir leur couche d'orchestration similaire, comme Docker: il n'y a pas de publication de ports, pas de volumes, pas de liens ou de méta-connexions entre différentes prisons. Seules les interfaces que le système d'exploitation en réseau vous offre: sockets réseau, sockets Unix, points de montage communs.
  • il n'y a pas de limites, bien sûr, sur qui peut communiquer avec qui dans les prisons FreeBSD, car il n'y en a pas dans Docker.
  • vous pouvez exécuter des images de docker natives dans FreeBSD, car il y a au moins un support partiel de docker sous FreeBSD, mais, puisque Linux est gratuit, je le déconseille fortement (et j'aime vraiment et profondément FreeBSD), car elles seront exécutées via la compatibilité Linux (fournie avec un module noyau FreeBSD) qui fournit certaines limitations connues.
26
drookie