Escenarios Multicontenedor con podman-compose
Resumen de una línea
podman-compose es equivalente a docker-compose: define múltiples contenedores en YAML, ejecuta con un comando.
Información
- Fuente: Curso Podman 2024 - Módulo 7
Concepto
podman-compose = docker-compose para Podman
# compose.yaml
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: myapp:latest
environment:
DB_HOST: db
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: secretpodman-compose up -dSintaxis: compose.yaml
Servicios
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/htmlRedes
services:
web:
networks:
- frontend
db:
networks:
- backend
networks:
frontend:
backend:Volúmenes
services:
db:
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:Comandos
# Crear y ejecutar
podman-compose up -d
# Ver estado
podman-compose ps
# Logs
podman-compose logs -f
# Parar
podman-compose down
# Eliminar
podman-compose down -v # También elimina volúmenesCasos de Uso
WordPress + MariaDB
services:
wordpress:
image: wordpress:latest
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secret
ports:
- "80:80"
depends_on:
- db
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 -d
# WordPress disponible en http://localhostRootless con podman-compose
# Por defecto funciona bien con rootless
podman-compose up -d
# Nota: en rootless, puertos < 1024 necesitan workaround