Podman
Instalación
Arch Linux
sudo pacman -Syu podman podman-compose
sudo pacman -Syu podman-desktop
Editar el archivo /etc/containers/registries.conf para habilitar la descarga de imágenes desde docker.io
/etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
Construcción y Despliegue
Con Docker Compose (múltiples servicios)
# Construir imágenes
podman-compose build
# Levantar servicios en segundo plano
podman-compose up -d
# Levantar servicios (modo interactivo)
podman-compose up
# Reconstruir y levantar servicios
podman-compose up --build
Con Dockerfile individual (imagen única)
# Construir imagen desde Dockerfile
podman build -t nombre-imagen:tag .
# Ejecutar contenedor desde la imagen
podman run -d --name nombre-contenedor \
-p 8080:80 \
-v $(pwd)/data:/app/data \
-e ENV_VAR=valor \
nombre-imagen:tag
# Ejecutar con reinicio automático
podman run -d --name nombre-contenedor \
--restart=always \
-p 8080:80 \
nombre-imagen:tag
Gestión de Servicios
Con Docker Compose
# Ver contenedores en ejecución
podman ps
# Ver todos los contenedores (incluidos detenidos)
podman ps -a
# Reiniciar un servicio específico
podman-compose restart service-name
# Detener todos los servicios
podman-compose down
# Detener y eliminar volúmenes
podman-compose down -v
Con contenedores individuales
# Iniciar contenedor detenido
podman start nombre-contenedor
# Detener contenedor
podman stop nombre-contenedor
# Reiniciar contenedor
podman restart nombre-contenedor
# Eliminar contenedor
podman rm nombre-contenedor
# Eliminar contenedor forzosamente
podman rm -f nombre-contenedor
# Inspeccionar contenedor
podman inspect nombre-contenedor
Logs y Monitoreo
# Ver logs en tiempo real (compose)
podman-compose logs -f
# Ver logs de un servicio específico (compose)
podman-compose logs -f service-name
# Ver logs de contenedor individual
podman logs -f nombre-contenedor
# Ver últimas N líneas de logs
podman logs --tail 100 nombre-contenedor
# Ver logs con marcas de tiempo
podman logs -t nombre-contenedor
Acceso a Contenedores
# Acceder a la terminal del contenedor web
podman exec -it service-web bash
# Acceder a contenedor individual
podman exec -it nombre-contenedor bash
# Ejecutar comando sin entrar al contenedor
podman exec nombre-contenedor ls -la /app
# Acceder a MySQL
podman exec -it service-db mysql -u<user> -p<password>
# Acceder como usuario específico
podman exec -it -u root nombre-contenedor bash
Base de Datos
# Importar base de datos
podman exec -i container_name mysql -u<user> -p<password> db-name < data.sql
# Exportar base de datos
podman exec container_name mysqldump -u<user> -p<password> db-name > backup.sql
Gestión de Imágenes
# Listar imágenes
podman images
# Listar imágenes con detalles
podman images --digests
# Eliminar imagen específica
podman rmi nombre-imagen:tag
# Eliminar imagen forzosamente
podman rmi -f nombre-imagen:tag
Limpieza y Mantenimiento
# Limpiar imágenes no utilizadas
podman image prune -a
# Eliminar contenedores detenidos
podman container prune
# Eliminar volúmenes no utilizados
podman volume prune
# Limpieza completa (contenedores, imágenes, volúmenes, redes)
podman system prune -a --volumes
# Limpieza completa sin confirmación
podman system prune -a --volumes -f
# Ver uso de espacio
podman system df
Volúmenes y Persistencia
# Listar volúmenes
podman volume ls
# Crear volumen
podman volume create nombre-volumen
# Inspeccionar volumen
podman volume inspect nombre-volumen
# Eliminar volumen
podman volume rm nombre-volumen
# Ejecutar con volumen nombrado
podman run -d -v nombre-volumen:/app/data nombre-imagen:tag
# Copiar archivos desde/hacia contenedor
podman cp archivo.txt nombre-contenedor:/path/destino
podman cp nombre-contenedor:/path/origen/archivo.txt ./
Tips Útiles
# Ver uso de recursos en tiempo real
podman stats
# Ver uso de recursos de contenedor específico
podman stats nombre-contenedor
# Limitar recursos al ejecutar
podman run -d --memory="512m" --cpus="1.0" nombre-imagen:tag
# Ver eventos en tiempo real
podman events
# Pausar/Despausar contenedor
podman pause nombre-contenedor
podman unpause nombre-contenedor