Guía para principiantes de contenedores Podman en Linux

Cuando se habla del futuro de la tecnología, muchos técnicos experimentados saben que la virtualización y la creación de contenedores son en gran medida ese camino. Permiten una mayor seguridad de aplicaciones y servicios, y se administran fácilmente a través de otros servicios que permiten instantáneas, plantillas y una mayor personalización que la que obtiene con el modelo de un servidor por aplicación. Sin embargo, no siempre está completamente claro cómo debe comenzar con la virtualización y la creación de contenedores. Hemos cubierto la virtualización en Linux, Windows y macOS muchas veces antes, pero la creación de contenedores tiende a ser una bestia un poco diferente. En este artículo, le proporcionamos una guía para principiantes de Podman en Linux, una gran herramienta para la creación de contenedores.

¿Qué son los contenedores?

Los contenedores son esencialmente pequeñas máquinas virtuales, pero solo para aplicaciones. Utilizan muchos de los mismos conceptos y cuentan con gran parte de las mismas características de seguridad y facilidad de uso, pero son mucho más pequeños y permiten una fácil creación de imágenes y distribución de una aplicación. Esto es mucho en lo que se basan Flatpaks y Snaps. Puede comenzar a ver los paralelos: un programa, varias aplicaciones que se ejecutan en entornos aislados.

¿Qué es Podman?

Muchos de nosotros hemos oído hablar de Docker, el OG de los motores de contenedores. Podman es un motor de contenedor similar que usa una estructura muy similar a Docker con un par de diferencias clave.

Una es que Podman no tiene demonios, mientras que Docker se basa en un demonio. Esto significa que los contenedores de Podman pueden funcionar sin permisos de nivel raíz, lo que permite una mayor seguridad y flexibilidad. Un contenedor que se ejecuta a nivel de usuario significa que los usuarios solo pueden ver sus contenedores y los de nadie más. Podman es más liviano en recursos del sistema debido a la arquitectura más simple, lo que hace que la experiencia sea más agradable.

La arquitectura sin daemon conduce a algo llamado contenedores sin raíces. Es un concepto que se basa en la diferencia anterior pero se centra en la seguridad. Si un atacante compromete su contenedor y logra escapar por cualquier motivo, solo tiene permisos de usuario básicos en lugar de permisos de root. Esto requiere una configuración adicional para comenzar, y hay algunas deficiencias en este momento, pero es algo que vale la pena ver.

Instalación de Podman

Para la mayoría de las distribuciones, Podman se encuentra en los repositorios principales, lo que lo convierte en un comando de instalación simple:

# Debian/Ubuntu
sudo apt install podman
 
# Fedora/CentOS/Redhat
sudo dnf install podman
 
# Arch Linux
sudo pacman -S podman
 
# OpenSUSE
sudo zypper install podman
 
# Gentoo
sudo emerge app-emulation/podman

Usando podman

La sintaxis del comando para iniciar un contenedor Podman puede ser un poco confusa, pero una vez que comience a dominarlo, comenzará a reconocer los patrones. Hay un contenedor de muestra del proyecto que puede ejecutar ingresando este comando en la terminal:

podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d \
-e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf \
-e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ \
registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd

Ejecutar Podman

Eso extraerá algunas imágenes del registro que aparece en la lista y, una vez hecho, obtendrá un número largo. Terminará viendo eso más tarde cuando verifique los contenedores en ejecución.

Para comprobar la ejecución de contenedores de Podman, introduzca el siguiente comando:

Podman ps

Verá el contenedor que comenzó anteriormente. Esto confirma que se está ejecutando. Sin embargo, si desea ver específicamente la página web que ejecuta Apache, ejecutará el siguiente comando:

reemplazando 0.0.0.0 con cualquier dirección IP que se muestre cuando ejecutó el podman ps dominio. Debería obtener un montón de HTML distorsionado, pero si mira directamente en la parte superior, notará la sintaxis de un título en HTML y sabrá que está funcionando.

<title>Test Page for the Apache HTTP Server on Fedora</title>

Imágenes de Podman

Algo bueno de Podman es usar imágenes. Puedes buscar otras imágenes como la httpd u otros programas que le interese ejecutar.

podman search CONTAINERNAME

busqué vncserver, y esto es lo que obtuve. Puede ver que hay muchas opciones, y todo se reducirá a su preferencia personal.

Búsqueda de Podman

Para capturar una de esas imágenes, ejecute el podman pull dominio.

podman pull CONTAINERNAME

Se recomienda que extraiga la URL completa para que el registro del contenedor sea completamente preciso. Como ejemplo, el comando que estoy ejecutando es:

podman pull docker.io/michaelaboeckler/vncserver

en lugar de simplemente correr podman pull vncserver porque puede haber imágenes que no quiero que se elijan en lugar de esta que sí quiero.

Tirón del podman

También puede verificar sus imágenes con este comando:

Y detenga los contenedores con este comando:

los -l significa que detendrá el último contenedor de ejecución, pero también puede usar el -a bandera para detener todos los contenedores.

Es posible que haya notado que Podman también puede buscar imágenes de contenedores en docker.io. Esto se debe a que los comandos de Podman y los comandos de Docker son esencialmente los mismos, tanto que a veces se recomienda crear un alias para el docker comando a podman como esto:

Esto significa que cada vez que ingrese dockersu máquina ejecutará el podman comando de todos modos.

Podman desarraigado

Para configurar su sistema para contenedores sin raíz, hay bastante configuración por hacer, pero hay una gran documentación sobre su página de Github.

Espero que haya disfrutado de este manual sobre Podman, una pequeña gran herramienta que le permitirá ejecutar contenedores sin raíces y sin demonios para mantener su sistema ágil, ordenado y seguro. Si lo hizo, asegúrese de consultar algunos de nuestros otros contenidos de contenedores, como nuestras guías sobre cómo ejecutar Ubuntu en un contenedor en ChromeOS, copiar contenedores de Docker a otro host y limitar los recursos de Docker Container.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *