Casos Prácticos y Aplicaciones con Podman
Resumen de una línea
Casos prácticos con Podman: Drupal, GuestBook, Temperaturas, WordPress; integración con Kubernetes.
Información
- Fuente: Curso Podman 2024 - Módulos 3-7 (casos prácticos)
Patrón General
1. Crear pod o usar compose
2. Ejecutar contenedores (web, app, DB)
3. Configurar redes y volúmenes
4. Probar
5. (Opcional) Generar YAML Kubernetes
Caso: WordPress + MariaDB (Pod)
# Crear pod
podman pod create wordpress-pod
# MariaDB
podman run --pod wordpress-pod \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=wordpress \
-v db-data:/var/lib/mysql \
mariadb
# WordPress
podman run --pod wordpress-pod \
-e WORDPRESS_DB_HOST=localhost \
-e WORDPRESS_DB_NAME=wordpress \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=secret \
-p 8080:80 \
wordpress
# Acceder: http://localhost:8080Caso: WordPress + MariaDB (Compose)
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secret
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: secret
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:podman-compose up -dCaso: WordPress + Systemd (Quadlet)
# /etc/systemd/system/container-wordpress.service
[Unit]
Description=WordPress with MariaDB
[Container]
Image=wordpress:latest
Ports=8080:80
Environment=WORDPRESS_DB_HOST=localhost
Depends=container-mariadb.service
[Service]
Restart=always
[Install]
WantedBy=default.targetsystemctl enable --now container-wordpressGuestBook (Aplicación Demo)
Aplicación multi-tier:
Frontend (Node.js)
↓
Backend API (Python)
↓
Redis (Cache)
↓
Base de datos
Con Podman:
# Cada servicio en su contenedor
podman run --net mynet redis
podman run --net mynet -e REDIS_HOST=redis python-api
podman run --net mynet -e API_HOST=api node-frontendTemperaturas (Aplicación Demo)
Aplicación de sensores:
Web (Django)
↓
API REST
↓
Base de datos
↓
MQTT (sensores)
Generar YAML Kubernetes
# Ejecutar en Podman
podman pod create myapp
podman run --pod myapp nginx
podman run --pod myapp myapp:latest
# Exportar a Kubernetes
podman generate kube myapp > myapp.yaml
# Ejecutar en Kubernetes
kubectl apply -f myapp.yamlPatrones Comunes
1. Desarrollo Local
podman-compose up -d
# Desarrollo rápido, cambios inmediatos2. Testing
podman run --rm -it app:latest pytest
# Limpiar automáticamente3. Producción Pequeña (VPS)
# Quadlet con systemd
podman run ... && systemctl enable container-app4. Migración desde Docker
# Cambiar docker → podman, nada más
docker-compose up → podman-compose upRelaciones
Conecta con
- podman-composepodman-compose]]
- Systemd y Quadlet: Gestión de Contenedores
- Gestión de Pods en Podman
- Kubernetes