Prises FreeBSD ou instances Docker

18

Quelles sont les principales différences entre les prisons sur FreeBSD et Docker sur 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?

Simba
la source

Réponses:

24

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 ont été 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 bien sûr aucune limite quant à 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 de noyau FreeBSD) qui fournit certaines limitations connues.
drookie
la source
Pour plus d'informations sur docker sur FreeBSD. Il fonctionnait auparavant dans une prison (imaginez la double isolation :)), il a été rendu possible en tant que port par le développeur principal de FreeNAS car ils voulaient l'utiliser sur cette distribution. Voici un article d'eux en parlant et l' ancienne page wiki pour cela . Depuis lors, ils ont cessé de le maintenir et cela ne semble plus fonctionner. Plus à suivre dans le prochain commentaire.
Vrakfall
Voici le dernier message du forum sur l'état de Docker dans FreeBSD . Accessoires à Phishfry là-bas pour certaines des informations que j'ai déposées ici. Il est toujours possible d'utiliser Docker sur FreeBSD en l'exécutant dans un Linux virtualisé (bhyve, virtualbox, etc ...) et en utilisant le port client uniquement , qui est toujours maintenu et fonctionne, pour s'y connecter. Après tout, boot2docker a été initialement conçu pour utiliser Docker de cette façon sur MacOS.
Vrakfall
Et nous savons que MacOS est un port (honteux, contre la toux , c'est mon opinion) de BSD . Mais tout cela, bien sûr, est uniquement pour un environnement de développement et ne peut en aucun cas être utilisé dans la production. C'est pour ceux qui veulent continuer à travailler sur FreeBSD et être en mesure de développer des choses de docker pour leur travail / passe-temps / quoi que ce soit.
Vrakfall
Oh et j'ai oublié de le dire, mais vous l'avez mentionné, l'ancien docker-freebsdport utilisait en effet le Linuxulator de FreeBSD .
Vrakfall
Ce n'est pas seulement que je veux diffuser des images publiques. Par exemple, si je ne veux pas passer d'innombrables heures pour apprendre la sécurité, je vais sur dockerhub et j'écris "hardened": hub.docker.com/search?q=hardened&type=image et je lance quelque chose à partir de là. Cela augmente considérablement la productivité par rapport à la construction de mon propre conteneur FreeBSD à partir de zéro sans être un expert en sécurité. Mais si vous avez une solution alternative aussi rapide, alors partagez-la! :-)
inf3rno