2 puntos por GN⁺ 2025-03-25 | 1 comentarios | Compartir por WhatsApp
  • Quadlet es una herramienta que permite ejecutar contenedores de Podman como servicios de systemd. Esto es útil para iniciar automáticamente los contenedores en segundo plano después de reiniciar el servidor.
  • Antes se usaba el comando podman generate systemd, pero ahora se recomienda migrar a Quadlet.

Método anterior

  • Había que crear el contenedor, generar el archivo de servicio de systemd, mover ese archivo al directorio adecuado y luego habilitar el servicio.
  • Este proceso tenía comandos largos y repetitivos, y además resultaba incómodo porque había que editar archivos manualmente.

Problemas

  • El método anterior era complejo y poco flexible.
  • En comparación con la comodidad de Docker Compose, requería hacer mucho trabajo manual.

Quadlet

  • Con Quadlet, se puede crear un archivo .container para gestionar el contenedor.
  • Mediante la sección [Container] se pueden configurar la imagen, los puertos, los volúmenes y las variables de entorno.
  • En la sección [Service] se puede definir la política de reinicio del contenedor.
  • En la sección [Install] se puede configurar el inicio automático al arrancar el sistema.

Qué mejora

  • Todo se puede administrar desde un solo archivo, y además se pueden usar todas las opciones de systemd.
  • Es más fácil escribir archivos de configuración que scripts.
  • Las dependencias se pueden gestionar fácilmente.

Dependencias

  • Si un contenedor de aplicación depende de un contenedor de base de datos, se pueden definir dependencias en la sección [Unit] usando las opciones Requires y After.

¿Demasiados archivos?

  • Dividir la configuración en varios archivos puede reducir la complejidad.
  • También permite agrupar y administrar mejor los archivos relacionados.

Actualización de imágenes

  • Si se usa la opción AutoUpdate=registry, es posible actualizar imágenes y reiniciar contenedores con el comando podman auto-update.
  • Como usar la etiqueta latest puede ser riesgoso, se recomienda utilizar etiquetas de versión específicas.

Sobre podman-compose

  • podman-compose es un script que convierte archivos Compose para usarlos con Podman y systemd, pero no es una alternativa adecuada a largo plazo.
  • Quadlet encaja mejor con el diseño sin daemon de Podman.

Material adicional

  • Para entender Quadlet con mayor profundidad, se recomienda leer la página del manual podman-systemd.unit.
  • Quadlet puede gestionar no solo contenedores, sino también pods, redes y volúmenes.
  • Si no estás familiarizado con la creación de archivos unit de systemd, también conviene consultar las páginas del manual systemd.unit y systemd.service.
  • podlet es una herramienta que puede ayudar a generar archivos de Quadlet a partir de comandos de Podman o archivos Compose.

1 comentarios

 
GN⁺ 2025-03-25
Comentarios de Hacker News
  • Quadlet es una alternativa a Docker Compose, útil para "ejecutar contenedores interdependientes en un entorno similar a producción". Sin embargo, es menos útil en entornos de desarrollo

    • Docker Compose permite gestionar fácilmente dependencias como bases de datos, Redis y OpenSearch
    • Como Quadlet requiere colocar archivos en ~/.config/containers/systemd, es difícil aislarlo del proyecto
    • Muchos desarrolladores siguen usando Docker, y para usar Podman hay que agregar configuración manualmente
    • Se necesita una alternativa a Docker Compose para desarrollo, pero Quadlet no es adecuada
  • Al descubrir Quadlet, alguien construyó un homelab basado en Atomic OS y Quadlet rootless, y lo recomienda mucho

    • Se puede usar la activación por socket de systemd para activar Traefik automáticamente
    • Es la única forma de conservar la IP de origen en una configuración rootless
  • Quadlet es una de las mejores herramientas surgidas de Podman y se recomienda a quienes estén interesados en trabajar con contenedores

    • Es conveniente porque permite tratar los contenedores como si fueran servicios del sistema
    • Usar Quadlet como alternativa a Docker permite una configuración más limpia
    • En un entorno de desarrollo local no es una alternativa a Docker Compose, y al equipo de Podman tampoco parece importarle mucho eso
  • Muchas personas dudan en cambiar de Docker a Podman por la comodidad de Docker Compose

    • Quadlet permite usar Podman como alternativa a Docker Compose
    • No vas a extrañar Docker y podrás disfrutar de la seguridad de ejecutar contenedores rootless
  • Se mencionó que Podman-Compose está "sin mantenimiento", pero Podlet está en un estado parecido

    • Podlet no soporta muchas funciones de Docker Compose ni admite apilar varios archivos yaml
  • Es incómodo que el upstream de Podman no ofrezca repositorios para Debian/Ubuntu

    • Eso hizo que alguien volviera a Docker Compose
  • Al usar openSUSE MicroOS, alguien terminó ejecutando contenedores de Podman bajo systemd/quadlet y está satisfecho con la configuración actual

    • Podman Compose era incómodo de usar, y Quadlet es una mejor opción
  • Le gusta la integración entre systemd y Podman

    • Docker Compose sigue siendo competitivo, y Quadlet puede complicar el directorio del proyecto
  • Resulta interesante que Quadlet haya llegado a la portada de Hacker News

    • Usar YAML de Kubernetes le da una gran portabilidad
  • Quadlet permite usar contenedores como servicios normales del sistema

    • La UX de los contenedores rootless no encaja bien con este concepto
    • Le gustaría poder ejecutar Quadlet rootless dentro de una sesión del sistema