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.
docker-freebsd
puerto estaba usando el Linuxulator de FreeBSD .