22. Primeros pasos con Podman en Ubuntu Server: una guía completa

Introducción

Primeros pasos con Podman te introduce en un motor de contenedores moderno y ligero, diseñado como una alternativa segura y sin root a Docker. A diferencia de Docker, Podman elimina la necesidad de un demonio central, ofreciendo mayor seguridad y flexibilidad para los desarrolladores y administradores de sistemas que gestionan contenedores. Su arquitectura sin root resulta especialmente atractiva para entornos en los que minimizar la escalada de privilegios es una prioridad.

En esta guía, cubriremos los aspectos esenciales de la instalación y el uso de Podman en Ubuntu Server 22.04. También abordaremos un problema común relacionado con la descarga de imágenes de contenedor usando nombres cortos (por ejemplo,nginx) y proporcionaremos una solución clara para ayudarte a empezar a usar Podman sin problemas.

Primeros pasos con Podman

Artículos anteriores:

01. Introducción a Ubuntu Server – SysOSX: AI & Cloud

02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud

03.Dominar la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gestión de usuarios y permisos en Ubuntu Server: guía completa – SysOSX: AI & Cloud

05. Fundamentos de redes para Ubuntu Server: guía completa – SysOSX: AI & Cloud

06. Instalación y gestión de software en Ubuntu Server: guía completa – SysOSX: AI & Cloud

07.Parcheo y actualización de Ubuntu Server: guía completa – SysOSX: AI & Cloud

08. Proteger tu servidor Ubuntu: pasos prácticos para reforzar y proteger – SysOSX: AI & Cloud

09. Auditoría y registro de Ubuntu Server

10. Herramientas de monitorización del sistema para Ubuntu Server: guía completa – SysOSX: AI & Cloud

11. Registro centralizado para Ubuntu Server: una guía imprescindible – SysOSX: AI & Cloud

12. Auditoría y cumplimiento para Ubuntu Server: prácticas recomendadas – SysOSX: AI & Cloud

13.Configuración de tu servidor Ubuntu para alojamiento y aplicaciones web: guía definitiva – SysOSX: AI & Cloud

14. Alojar varios sitios web en un solo servidor Ubuntu: consejos útiles – SysOSX: AI & Cloud

15. Gestión de almacenamiento y discos en Ubuntu Server: guía sencilla – SysOSX: AI & Cloud

16. Configuración de servicios de uso compartido de archivos en Ubuntu Server: guía completa – SysOSX: AI & Cloud

17. Configuración de un servidor de bases de datos seguro en Ubuntu: MySQL frente a MariaDB – SysOSX: AI & Cloud

18. Cómo configurar y usar LVM en Ubuntu Server: guía completa – SysOSX: AI & Cloud

19. Introducción a la virtualización con KVM: guía para principiantes de Ubuntu Server – SysOSX: AI & Cloud

20. Cómo instalar Docker en Ubuntu Server: guía paso a paso sobre la contenerización – SysOSX: AI & Cloud

21. Primeros pasos con LXD: instala contenedores con facilidad + hoja de referencia – SysOSX: AI & Cloud



¿Qué es Podman y por qué usarlo?

Podman es un motor de contenedores diseñado para crear, ejecutar y gestionar contenedores, con especial atención a la seguridad y la flexibilidad. Estas son las razones por las que Podman está ganando popularidad:

  • Arquitectura sin demonio: Podman no depende de un servicio en segundo plano (a diferencia del modelo basado en demonio de Docker), lo que reduce la superficie de ataque y mejora la seguridad.
  • Contenedores sin root: Ejecuta contenedores como usuario sin root para mejorar aún más la seguridad.
  • Comandos compatibles con Docker: La CLI de Podman está diseñada para ser compatible con Docker, lo que te permite usar comandos como podman pull o podman run sin problemas.
  • Integración con systemd: Gestiona contenedores como servicios del sistema con facilidad.

Paso 1: Instalar Podman en Ubuntu Server 22.04

1.1 Actualiza tu sistema

Antes de instalar Podman, asegúrate de que tu sistema esté actualizado para evitar problemas de compatibilidad:

sudo apt update && sudo apt upgrade -y  

1.2 Instalar Podman

Podman está incluido en los repositorios predeterminados de Ubuntu, así que puedes instalarlo directamente con el gestor de paquetes apt:

sudo apt install podman -y  

1.3 Verificar la instalación

Después de la instalación, verifica la versión instalada de Podman para asegurarte de que está lista para usar:

podman --version  

Ejemplo de salida:

podman version 3.4.4


Paso 2: Ejecuta tu primer contenedor de Podman

2.1 Descargar una imagen de contenedor

Podman usa imágenes de contenedor para ejecutar aplicaciones. Empieza descargando la ligera imagen de Alpine Linux:

podman pull alpine  

2.2 Ejecutar un contenedor

Ejecuta un contenedor con la imagen de Alpine:

podman run --rm -it alpine sh  

Este comando inicia una shell interactiva dentro del contenedor de Alpine. Puedes probar comandos básicos, como:

echo "Hello from Podman!"  

2.3 Salir del contenedor

Para salir del contenedor, escribe:

exit  


Paso 3: Comprender la resolución de nombres cortos de Podman

El problema con los nombres cortos

Al descargar imágenes de contenedor con nombres cortos (por ejemplo,nginx), Podman necesita saber en qué registro buscar la imagen. Sin la configuración adecuada, es posible que encuentres el siguiente error:

Error: short-name "nginx" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"  

¿Por qué ocurre este error?

Podman requiere un archivo de configuración (registries.conf) para definir los registros de contenedores en los que debe buscar imágenes. Si este archivo falta o está mal configurado, Podman no puede resolver nombres cortos como nginx.


Paso 4: Corregir el error de resolución de nombres cortos

4.1 El archivo registries.conf : localízalo o créalo

El archivo registries.conf suele estar ubicado en /etc/containers/registries.conf. Comprueba si el archivo existe:

ls /etc/containers/registries.conf  

Si no existe, créalo:

sudo nano /etc/containers/registries.conf  

4.2 Agregar la configuración de registro predeterminada

Agrega la siguiente configuración al archivo:

[registries.search]  
registries = ['docker.io', 'quay.io']  

  • docker.io: Se refiere a Docker Hub, el registro de contenedores más usado.
  • quay.io: Otro registro de contenedores popular.

Guarda el archivo y sal (Ctrl+O y luego Ctrl+X, si usas nano).

4.3 Reintentar el comando de descarga

Con la configuración del registro lista, intenta descargar de nuevo la imagen de nginx de nuevo:

podman pull nginx  

Podman ahora debería resolver el nombre corto nginx a docker.io/library/nginx y descargar la imagen correctamente.


Paso 5: Ejecutar contenedores como usuario sin root

Una de las características más destacadas de Podman es su capacidad para ejecutar contenedores sin requerir privilegios de root. Te explicamos cómo configurarlo:

5.1 Cambiar a un usuario sin root

Inicia sesión como usuario normal (por ejemplo,uadmin):

su - uadmin  

Verifica que Podman funcione para el usuario sin root:

podman info  

5.2 Corregir problemas de permisos para usuarios sin root

Si encuentras un error de permission denied al ejecutar Podman como usuario sin root, es probable que se deba a la propiedad incorrecta del directorio personal del usuario.

Comprueba la propiedad del directorio personal:

ls -ld /home/uadmin  

Si el directorio pertenece a root, corrígelo:

sudo chown -R uadmin:uadmin /home/uadmin  

Crea manualmente el directorio .local:

mkdir -p /home/uadmin/.local/share/containers  
sudo chown -R uadmin:uadmin /home/uadmin/.local  

Prueba Podman de nuevo:

podman info  

Podman ahora debería funcionar correctamente como usuario sin root.


Paso 6: Comandos útiles de Podman para principiantes

Estos son algunos comandos esenciales de Podman para ayudarte a empezar:

  • Enumerar contenedores en ejecución:
podman ps
  • Enumerar todos los contenedores (incluidos los detenidos):
podman ps -a
  • Detener un contenedor en ejecución:
podman stop <container-id>
  • Eliminar un contenedor:
podman rm <container-id>
  • Eliminar una imagen:
podman rmi <image-name>

Documentación de referencia:
Primeros pasos con Podman | Podman


    Conclusión

    Podman es un motor de contenedores seguro, ligero y flexible, perfecto para Ubuntu Server 22.04. En esta guía, cubrimos:

    • Instalar Podman.
    • Ejecutar tu primer contenedor.
    • Corregir el error de resolución de nombres cortos.
    • Ejecutar contenedores como usuario sin root.

    Si sigues estos pasos, ahora tienes una base sólida para empezar a explorar Podman y gestionar contenedores de forma eficaz. Con sus capacidades sin root y su CLI compatible con Docker, Podman es una herramienta excelente para los flujos de trabajo de contenerización modernos.

    No te lo pierdas:
    En el próximo artículo hablaremos sobre cómo implementar Ubuntu Server en plataformas en la nube , como GCP, AWS y Azure.

    Deja un comentario