Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

¿Qué es Podman y en qué se diferencia de Docker?

Podman es un motor de contenedores que es compatible con la especificación OCI Containers. Podman es parte de RedHat Linux, pero también se puede instalar en otras distribuciones.

Como es compatible con OCI, Podman se puede utilizar como reemplazo directo del más conocido tiempo de ejecución de Docker. La mayoría de los comandos de Docker se pueden traducir directamente a comandos de Podman.

A continuación se muestra cómo se comparan los dos tiempos de ejecución.

¿Qué es un tiempo de ejecución?

Para mucha gente, un “contenedor” sigue siendo un “contenedor Docker”. Esta no es una representación precisa del ecosistema de contenedores actual. Docker produce imágenes de contenedores OCI, que se pueden utilizar con otros tiempos de ejecución compatibles. Kubernetes es un ejemplo, mientras que Podman es otro.

Como consecuencia, Podman y Docker tienen funciones principales superpuestas. Ambos producen imágenes que el otro puede usar para ejecutar contenedores. Luego, los dos tiempos de ejecución agregan sus propias especialidades además de las características básicas de contenedorización.

Cómo instalar Podman

Si estás usando RedHat Linux, Podman está en el

 extras 

repositorio. Usar

 subscription-manager 

para agregar el repositorio. Entonces podrás usar

 yum 

para instalar Podman.

su -

subscription-manager repos --enable rhel-7-server-extras-beta-rpms

yum -y install podman

La mayoría de las otras distribuciones de Linux populares también incluyen Podman en sus repositorios predeterminados. Puede instalar apt podman, dnf install podman o pacman -S podman para instalarlo.

Trabajar con contenedores e imágenes

La CLI de Podman está deliberadamente alineada con la de Docker. Eso significa que puede utilizar comandos familiares de Docker para interactuar con los contenedores Podman:

podman pull my-image:latest

podman run my-image:latest --name my-container

podman ps

podman rm my-container

Podman debería resultar familiar instantáneamente para los usuarios de Docker. Podría utilizar el alias de Docker como Podman y no notar una diferencia en el uso diario. Por supuesto, no todas las funciones están disponibles; intentar usar los comandos de Docker Swarm arrojará un error, ya que Podman no tiene nada equivalente a Swarm.

¿Qué tiene de diferente Podman?

Si bien se parece a Docker, Podman tiene algunas diferencias distintivas. Lo primero y posiblemente más significativo es su arquitectura. Podman no tiene demonios: no existe un proceso de larga duración para administrar sus contenedores.

Cuando ejecuta un comando podman, interactúa directamente con el proceso que inicia sus contenedores y recupera sus imágenes. La CLI de Docker depende de una conexión al demonio de Docker. La CLI envía comandos al demonio, y luego el demonio actúa sobre ellos para crear contenedores.

El modelo de Podman ayuda a abordar algunas de las preocupaciones en torno a la seguridad de Docker. La falta de un demonio reduce considerablemente la superficie de ataque del contenedor. Si necesita acceso remoto, Podman expone una API REST que te permite interactuar con todos los tipos de recursos admitidos.

vainas

Podman viene con características únicas de las que Docker carece por completo. En Podman, los contenedores pueden formar “cápsulas” que funcionan juntas. Es similar al concepto de Kubernetes Pod.

Para crear un Pod, use el comando de creación de pod:

podman pod create --name my-pod

Los contenedores se agregan a los Pods al incluir el indicador –pod con podman run:

podman run --pod my-pod --name image-1 my-image:latest

podman run --pod my-pod --name image-2 another-image:latest

Los contenedores en el Pod se pueden administrar en conjunto por usando los comandos de podman pod:

podman kill my-pod # Kill all containers

podman restart my-pod # Restart all containers

podman stop my-pod # Stop all containers

El concepto Pod es poderoso, ya que le permite administrar múltiples contenedores en conjunto. Puede crear contenedores de aplicaciones, como un frontend, un backend y una base de datos, agregarlos a un Pod y administrarlos al unísono.

Lo más cerca que llega Docker a esto es con Compose. El uso de Compose requiere que escriba un archivo docker-compose.yml y use el binario docker-compose separado. Podman te permite crear Pods usando un comando sin salir de la terminal.

Cuando necesite exportar la definición de un Pod, Podman generará un manifiesto YAML compatible con Kubernetes. Puede tomar el manifiesto y aplicarlo directamente a un clúster de Kubernetes. Esto reduce la brecha entre ejecutar un contenedor en desarrollo y lanzarlo a la infraestructura de producción.

podman generate kube

Contenedores sin raíces

Soportes Podman contenedores desarraigados. Esto le ayuda a bloquear su seguridad al evitar que los contenedores se ejecuten como usuario raíz del host. Docker ahora es compatible modo desarraigado como opción de configuración del demonio. Podman se había desarraigado antes que Docker y pone mayor énfasis en su uso.

Primero, instale slirp4netns:

yum install slirp4netns

A continuación, configure una cantidad de espacios de nombres de red de ámbito de usuario:

echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf

sysctl -p /etc/sysctl.d/userns.conf

Este comando permite el uso de espacios de nombres de red sin ser root.

¡Ahora está listo para ejecutar un contenedor sin raíz! Conéctese al servidor como un usuario normal. Inicie un nuevo contenedor con podman run. Se creará con el UID de su cuenta de usuario en lugar de root.

Además de los espacios de nombres totalmente desarraigados, podman tiene como alcance al usuario actual de forma predeterminada. Sus imágenes y contenedores se almacenan en la carpeta $HOME de su usuario. Cuando ejecuta podman ps o podman images, solo verá su contenido en lugar de todos los recursos del sistema.

Conclusión

Podman es un tiempo de ejecución de contenedor compatible con OCI que funciona sin un demonio. La CLI implementa todos los comandos principales de Docker. Puede realizar la transición fácilmente a Podman o utilizarlo junto con una instalación de Docker existente.

A diferencia de Docker, Podman tiene soporte de primera clase para administrar múltiples contenedores. El modelo Pod facilita el trabajo con una pila de servicios. Puede detener, reiniciar y eliminar todos los contenedores asociados mediante comandos a nivel de pod.

Podman también está listo para ayudarlo a dar el salto a los servicios de orquestación de contenedores. La capacidad de exportar YAML compatible con Kubernetes hace que Podman sea más compatible con muchos entornos de producción en contenedores. Los desarrolladores y operadores pueden utilizar la misma herramienta para gestionar sus contenedores, lo que permite una mayor colaboración y flexibilidad.