Podman: una alternativa para los contenedores con Docker
Podman es un motor de contenedores (container engine) que puede ser un sustituto para Docker. Este motor ha sido desarrollado por la compañÃa Red Hat (ahora propiedad de IBM) y pretende ir desplazándolo poco a poco. ¿Lo conseguirá? Bueno, ya veremos…
El proyecto de código abierto tiene una gran facilidad de uso, lo que es un gran atractivo. Tal es la facilidad que existe un artÃculo de Dan Walsh, un ingeniero de Red Hat, en el que muestra los pasos de una migración para reemplazar Docker con Podman, y eran estos:
dnf install -y podman alias docker=podman
Y bajo esa descripción terminaba diciendo «¿Alguna pregunta?» con un poco de humor por lo sencillo que es…
Además de eso, si ya estás acostumbrado a usar Docker tampoco te tienes que preocupar demasiado por los comandos, ya que Podman usa los mismos en su mayorÃa. Es decir, si para correr un contenedor tienes que usar docker run, para hacerlo con este otro proyecto tienes que usar podman run. Asà de sencillo para recordar las opciones.
Bien, hasta aquà todo parece similar. Ambos proyectos son buenos, de código abierto, trabajan con contenedores, son sencillos, usan la misma sintaxis, etc. Pero ¿entonces? ¿Qué tiene Podman para hacer que merezca la pena tenerlo? Pues bien, una de las diferencias es que no está basado en demonios (servicios en el mundo *nix).
Como sabes, Docker sà que tiene su demonio asociado. Ese demonio es único y centralizado, lo que quiere decir que mientras más contenedores uses, su complejidad irá creciendo y haciéndose más y más pesado. Por eso Red Hat ha decidido crear esta otra herramienta para corregir esa desventaja.
En Podman se han descentralizado los componentes para la gestión de contenedores y asà evitar ese ensanchamiento del demonio como ocurre en Docker. Esos componentes individuales solo son usados cuando sean necesarios, lo que dejará un menor consumo de recursos.
Además de esa ventaja tiene otra gran ventaja. Podman puede gestionar contenedores de la misma forma que Docker, pero también puede hacerlo con Pods, es decir, las unidades que se usan en Kubernetes. La diferencia esencial entre un contenedor y un Pod es que cada Pod puede contener a su vez más de un contenedor.