Saltar al contenido
Todo sobre trucos y tutoriales de Android

Herramientas de contenedores alternativas de Docker en 2021

herramientas alternativas de docker

Docker es el sistema de gestión de contenedores gratuito y de código abierto más popular y ampliamente utilizado. Docker ayuda a crear, implementar y enviar aplicaciones de software en un entorno aislado; conoce como contenedor. Un contenedor contiene las bibliotecas, las dependencias y las configuraciones necesarias para que el paquete de software se ejecute y funcione correctamente.

En el pasado, Docker ha sido la única tecnología de contenedorización fácil de usar. Muchos proyectos han llegado como alternativa a Docker y competidores en el mercado en los últimos años. Algunos de los comunes Alternativas de Docker en el mercado se enumeran a continuación.

1) Podman

Una buena alternativa a la ventana acoplable en estos días es Podman, que es un motor de contenedor gratuito y de código abierto lanzado bajo la licencia Apache-2.0. Podman ayuda a crear, implementar y administrar imágenes y volúmenes de contenedores. Es un servicio sin demonio, lo que significa que no requiere ningún demonio centralizado en ejecución para administrar los contenedores y las imágenes.

En Podman, podemos administrar contenedores tanto de usuarios root como no root. Pero por defecto, requiere ejecutarse como usuario root. Las líneas de comandos de Podman son compatibles con las interfaces de comandos de docker cli. Entonces, alguien que esté familiarizado con la ventana acoplable puede usar fácilmente Podman.


Actualmente, solo está disponible en sistemas GNU/Linux, mientras que los clientes remotos están disponibles tanto para Windows como para Mac OS. Una característica adicional de Podman es que podemos generar fácilmente un archivo YAML compatible con Kubernetes basado en el contenedor en ejecución para que uno pueda ejecutar fácilmente los contenedores a través de Kubernetes.

Ventajas:



  • Podman es un servicio sin demonio, no requiere ningún demonio centralizado.
  • Se puede ejecutar como usuarios root y no root.
  • Los usuarios de Docker pueden usar fácilmente Podman ya que los comandos son los mismos.

Contras:

  • El backend de Podman solo está disponible en distribuciones GNU/Linux.

2) LXC

Linux Containers (LXC) es un tiempo de ejecución de contenedor de Linux de bajo nivel conocido y probado en batalla. Es un método de virtualización a nivel de sistema operativo para ejecutar múltiples sistemas Linux conocidos como contenedores utilizando una sola máquina host del kernel de Linux.

Con LXC, uno puede obtener un entorno aislado cerca de una VM pero sin la sobrecarga que conlleva ejecutar un kernel de Linux separado y simular el hardware. LXC fue desarrollado y mantenido antes que Docker. Pero como Docker era bastante fácil de usar, se hizo más popular e interesante en la comunidad.

Ventajas:

  • LXC es un tiempo de ejecución de contenedor de Linux de bajo nivel probado en batalla.
  • Es liviano y es mejor para ejecutar aplicaciones de software intensivas de E/S.
  • Es adecuado para ejecutar múltiples sistemas Linux y es una buena alternativa a la virtualización tradicional basada en hipervisor.

Contras:

  • Como se mantiene principalmente para Ubuntu, LXC tiene un soporte de funciones inconsistente en diferentes distribuciones de GNU/Linux.

3) Contenedor

Inicialmente, Containerd comenzó como parte del proyecto de código abierto Docker, pero luego comenzó como un proyecto independiente. Contenedor es un demonio simple y portátil que se utiliza para administrar el ciclo de vida completo del contenedor en la máquina host. Se utiliza para la supervisión de almacenamiento de bajo nivel en archivos adjuntos de red y aún más en máquinas GNU/Linux y Windows.

La API de containerd facilita bastante la gestión del entorno a través de llamadas a la API en lugar de llamadas al sistema. Actualmente, Containerd se considera el administrador de tiempo de ejecución de contenedores estándar de la industria y se usa en la orquestación y administración de contenedores en proyectos importantes como Docker, Kubernetes y más en los proveedores de nube populares. Es un sólido administrador de tiempo de ejecución de contenedores independiente de alto nivel y está bien optimizado para memoria baja, picos de CPU bajos y almacenamiento bajo que minimiza los gastos generales para un mejor rendimiento.

Ventajas:

  • Contiene el administrador de tiempo de ejecución de contenedores estándar de la industria y cumple con OCI.
  • Está bien optimizado para memoria baja, picos de CPU bajos y mejor rendimiento con una sobrecarga mínima.
  • Se utiliza como componente principal en Kubernetes, Docker y otros sistemas de orquestación de contenedores.

Contras:

  • Containerd tiene que ver con la gestión de contenedores, pero no se ocupa de las redes y otras cosas.

4) Cohete (rkt)

Rocket (también conocido como rkt) es un tiempo de ejecución de contenedores desarrollado por el proyecto CoreOS, que luego fue adquirido por Red Hat. Antes de CRI, Rocket era el único entorno de ejecución de contenedores creado para integrarse con el kubelet de Kubernetes. Es un tiempo de ejecución de contenedor de alto nivel, que proporciona capacidades de bajo nivel y puede ejecutarse sin un demonio. En febrero de 2020, el proyecto rkt se suspendió y ya no se mantiene.

Ventajas:

  • Rocket puede funcionar sin un demonio.
  • Es compatible con sistemas init como systemd y upstart.

Contras:

  • El proyecto rkt está descontinuado y ya no se mantiene.

tiempo de ejecución del contenedor

tiempo de ejecución del contenedor es un bloque importante del ciclo de vida de un contenedor cuya responsabilidad principal es ejecutar y administrar contenedores en una máquina host. En términos generales, los tiempos de ejecución de contenedores se pueden clasificar en dos grupos principales en un espectro, son tiempos de ejecución de bajo nivel y tiempos de ejecución de alto nivel.

Kubernetes es un sistema de administración de orquestación de contenedores y requiere una implementación de la interfaz de tiempo de ejecución del contenedor para que los tiempos de ejecución del contenedor se comuniquen con Kubelet. Algunos de los tiempos de ejecución de contenedores populares compatibles con Kubernetes CRI son los siguientes.

CRI-O

CRI-O es un entorno de ejecución de contenedores livianos bien optimizado, desarrollado para Kubernetes como una alternativa a Docker. Es una implementación de Kubernetes Interfaz de tiempo de ejecución del contenedor (CRI) para habilitar el uso de tiempos de ejecución compatibles con OCI. Tiene la capacidad de extraer de cualquier registro de contenedor.

CRI-O usa Runc y Kata Containers como tiempos de ejecución de contenedor de bajo nivel predeterminados, pero en principio se puede usar cualquier tiempo de ejecución compatible con OCI.

Lectura sugerida: Cómo instalar Kubernetes en Ubuntu 20.04


rktlet

Rktlet es otra implementación de tiempo de ejecución de contenedores de la interfaz de tiempo de ejecución de contenedores de Kubernetes con Rocket (rkt). Utiliza rkt como tiempo de ejecución del contenedor principal con Kubernetes. Todos los contenedores que se ejecutan con rktlet se ejecutan con el tiempo de ejecución del contenedor rkt. Kubernetes (kubelet) se comunica con rktlet a través de gRPC. El CRI es la interfaz mediante la cual kubelet y rktlet se comunican entre sí. El proyecto rktlet ha sido descontinuado, por lo tanto, final de vida útil (EOL).

Frakti

Frakti es un entorno de ejecución de contenedor ligero y portátil basado en hipervisor para Kubernetes. Permite que Kubernetes ejecute y administre pods y contenedores directamente dentro de los hipervisores con runV. HyperContainer es un tiempo de ejecución acoplable independiente del hipervisor que se utiliza como contenedor de API en runV. Proporciona un aislamiento mucho más fuerte con cada pod con kernels independientes que los tiempos de ejecución de contenedores basados ​​en el espacio de nombres de Linux.

Cuña CRI de Docker

Dockershim es una implementación de la interfaz de tiempo de ejecución del contenedor para la integración de Docker mediante Kubernetes. Kubernetes mantuvo Dockershim, pero se depreció recientemente. Nunca tuvo la intención de mantenerse a largo plazo, de ahí la palabra «calza». En realidad, se creó para ayudar a Docker a integrarse con Kubernetes, pero siempre terminó siendo un salto adicional, lo que llevó a Docker al desarrollo del tiempo de ejecución de Containerd, y ahora como parte de Open Container Initiative (OCI).

Recientemente, dockershim se depreció con la versión v1.20.0 de Kubernetes, a pesar de este cambio importante, no afecta a los desarrolladores finales ni a los ingenieros de DevOps, mientras que los operadores y administradores de sistemas que se encargan de la infraestructura subyacente de Kuberenetes pueden tener que cambiar de dockershim a otro CRI. tiempos de ejecución de contenedores compatibles como CRI-O, Containerd, etc.

Conclusión

En el mundo de la contenerización, diferentes tecnologías están evolucionando a tiempo. En el pasado, fue docker quien introdujo el poder de los contenedores en las aplicaciones de software para la comunidad. No teníamos muchas opciones con el administrador de contenedores y la orquestación, Docker era el único paso para DevOps y la tecnología de contenedores. Pero las cosas han cambiado en los últimos años, existen varios sistemas y alternativas docker o que funcionan en tecnología docker y container. Si tiene alguna pregunta, sugerencia, comentario, escríbalo en el cuadro de comentarios a continuación.

TE PUEDE INTERESAR:  Cómo instalar Tig en Ubuntu 20.04