Systemd y Quadlet: Gestión de Contenedores

Resumen de una línea

Quadlet permite gestionar contenedores Podman como servicios systemd nativos: archivo .service → systemctl start/stop.

Información

  • Fuente: Curso Podman 2024 - Módulo 6

Concepto: Quadlet

Quadlet = Integración Podman + systemd

# /etc/systemd/system/container-app.service
[Unit]
Description=My Application Container
 
[Container]
Image=myapp:latest
Exec=python app.py
 
[Service]
Restart=always
 
[Install]
WantedBy=default.target
systemctl start container-app
systemctl enable container-app
systemctl status container-app

Sintaxis

[Container]

[Container]
Image=nginx:latest
Ports=8080:80
Environment=DB_HOST=localhost
Volume=/home/user/data:/app/data

[Service]

[Service]
Restart=always           # Reintentar si falla
RestartSec=10           # Segundos entre reintentos
Type=notify             # Notificar cuando está listo

[Install]

[Install]
WantedBy=default.target

Ventajas

✅ Gestión nativa de systemd
✅ Logs en systemd (journalctl)
✅ Reinicio automático con host
✅ Integración con otros servicios systemd

Ejemplos

Servidor Web

[Unit]
Description=Nginx Web Server
 
[Container]
Image=nginx:latest
Ports=80:80,443:443
 
[Service]
Restart=on-failure
 
[Install]
WantedBy=default.target

Base de Datos

[Unit]
Description=MariaDB Database
 
[Container]
Image=mariadb:latest
Environment=MYSQL_ROOT_PASSWORD=secret
Volume=/home/data:/var/lib/mysql
 
[Service]
Restart=always
 
[Install]
WantedBy=default.target

Operaciones

# Habilitar servicio
systemctl enable --now container-app
 
# Ver logs
journalctl -u container-app -f
 
# Parar
systemctl stop container-app

Relaciones

Conecta con

Fuentes