Instancias de FreeBSD Jails o Docker

18

¿Cuáles son las principales diferencias entre las cárceles en FreeBSD y Docker en Linux? ¿Es uno mucho más seguro o más eficiente que el otro? Las cárceles son mucho más antiguas que las instancias de Docker, por lo que el código en sí podría considerarse más seguro. Pero las cárceles nunca "se dieron cuenta", ¿entonces quizás no son tan buenas como las instancias de Docker? ¿O es solo porque Linux es mucho más popular que FreeBSD?

Simba
fuente

Respuestas:

24

Abordaré algunos de los aspectos de las cárceles de FreeBSD y Linux Docker, de cómo son similares y cómo son diferentes.

  • ambos cumplen el mismo objetivo: es una implementación de virtualización ligera, cuando ejecuta la aplicación en un compartimento separado y aislado bajo el mismo núcleo, y aquí terminan las similitudes y comienzan las diferencias
  • Docker es una herramienta que se utiliza principalmente para ejecutar imágenes binarias preparadas que se pueden obtener de varios repositorios públicos o privados. La mayoría de la gente lo usa de esta manera. Menos personas construyen las suyas y luego las suben a esos repositorios.
  • Las cárceles de FreeBSD son más como LXC en Linux: es un método para crear su contenedor desde cero. Lo crea, instala el software en él, y eso es prácticamente todo: puede tratarse como FreeBSD dentro de FreeBSD. No hay una manera fácil de exportar ese contenedor como una sola pieza de software, como en Docker. Entonces, casi todas las personas que usan FreeBSD, al contrario, siempre construyen su propio pedazo de FreeBSD dentro de un contenedor desde cero (es decir, desde el sistema base instalado), instalando software desde el sistema de puertos de FreeBSD o desde la fuente. Las cárceles de FreeBSD son menos amigables y tienen un costo de uso inicial más alto.
  • Del mismo modo que los contenedores LXC son persistentes, las cárceles de FreeBSD también son persistentes. Todos los cambios permanecen intactos entre las botas. Como dije, es solo una parte del sistema operativo dentro del mismo sistema operativo (aunque las versiones del software del usuario pueden diferir hasta que el ABI se mantenga en el núcleo de FreeBSD). Esto significa que no puede confirmar los cambios: se confirman una vez que se crean.
  • De todo lo anterior, es obvio por qué los contenedores de FreeBSD no pueden tener su capa de orquestación similar, como lo hace Docker: no hay publicación de puertos, no hay volúmenes, no hay enlaces o meta-conexiones entre diferentes cárceles. Solo las interfaces que ofrece el sistema operativo en red: sockets de red, sockets de Unix, puntos de montaje comunes.
  • no hay limitaciones, por supuesto, sobre quién puede comunicarse con quién dentro de las cárceles de FreeBSD, ya que no hay ninguna en Docker.
  • puede ejecutar imágenes de acoplador nativas en FreeBSD, porque hay soporte al menos parcial de acoplador en FreeBSD, pero, dado que Linux es gratuito, desaconsejo encarecidamente (y realmente y profundamente amo FreeBSD), porque se ejecutarán a través de la compatibilidad con Linux capa (provista con un módulo de kernel de FreeBSD) que proporciona algunas limitaciones conocidas.
drogadicto
fuente
Para más información sobre docker en FreeBSD. Solía ​​funcionar dentro de una cárcel (imagina el doble aislamiento :)), fue hecho posible como puerto por el desarrollador principal de FreeNAS ya que querían usarlo en esa distribución. Aquí hay un artículo de ellos hablando sobre él y la antigua página wiki para ello . Desde entonces, dejaron de mantenerlo y parece que ya no funciona. Más para seguir en el próximo comentario.
Vrakfall
Aquí está la última publicación del foro que habla sobre el estado de Docker en FreeBSD . Apoyos a Phishfry allí para obtener parte de la información que lancé aquí. Todavía es posible usar Docker en FreeBSD ejecutándolo en un Linux virtualizado (bhyve, virtualbox, etc.) y usando el puerto solo para clientes , que aún se mantiene y funciona, para conectarse a él. Después de todo, boot2docker se creó originalmente para usar Docker de esa manera en MacOS.
Vrakfall
Y sabemos que MacOS es un puerto de BSD (vergonzoso, tos , este es mi punto de vista) . Pero todo eso, por supuesto, es solo para un entorno de desarrollo y de ninguna manera puede usarse en la producción. Esto es para aquellos que desean seguir trabajando en FreeBSD y poder desarrollar cosas de Docker para su trabajo / hobby / lo que sea.
Vrakfall
Ah, y olvidé decirlo, pero lo mencionaste, el viejo docker-freebsdpuerto estaba usando el Linuxulator de FreeBSD .
Vrakfall
No es solo que quiero publicar imágenes públicas. Por ejemplo, si no quiero pasar innumerables horas para aprender seguridad, subo a dockerhub y escribo "endurecido": hub.docker.com/search?q=hardened&type=image y ejecuto algo desde allí. Aumenta enormemente la productividad en comparación con la construcción de mi propio contenedor de FreeBSD desde cero sin ser un experto en seguridad. Pero si tiene una solución alternativa similarmente rápida, ¡por favor comparta! :-)
inf3rno