Guía de tecnologías

Instalar y usar Podman en Debian 11

5 min read DevOps Actualizado 22 Oct 2025
Podman en Debian 11: instalación y uso
Podman en Debian 11: instalación y uso

Imagen ilustrativa del logotipo y uso de Podman

Introducción

Podman (POD MANager) es un motor de contenedores compatible con OCI desarrollado por Red Hat como reemplazo de Docker. Administra contenedores, imágenes y volúmenes mediante una interfaz de línea de comandos. A diferencia de Docker, Podman no requiere un daemon en ejecución: cada contenedor se lanza sin un proceso central permanente. Internamente usa la librería libpod para gestionar el ecosistema de contenedores.

Definición rápida: OCI significa Open Container Initiative, un estándar abierto para contenedores.

Qué necesitarás

  • Un servidor con Debian 11.
  • Acceso root o privilegios sudo.

Instalar Podman

El paquete Podman está en el repositorio por defecto de Debian 11. Instálalo con:

apt-get install podman -y

Verifica la versión instalada:

podman --version

Salida esperada (ejemplo):

podman version 3.0.1

Más información del entorno y la configuración local:

podman info

Ejemplo de salida (recorte):

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: 'conmon: /usr/bin/conmon'
    path: /usr/bin/conmon
    version: 'conmon version 2.0.25, commit: unknown'
  cpus: 2
  distribution:
    distribution: debian
    version: "11"
  eventLogger: journald
  hostname: debian11
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.10.0-8-amd64
  linkmode: dynamic
  memFree: 3365183488
  memTotal: 4122267648
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version 0.17
      commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: true
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: false

Nota: la salida muestra si el host usa cgroups v2, el runtime (crun o runc) y si está habilitado AppArmor/SELinux.

Importante: Podman funciona bien tanto en modo root como rootless. El modo rootless permite ejecutar contenedores sin privilegios de root, mejorando el aislamiento.

Añadir un registro OCI (registries)

Podman lee /etc/containers/registries.conf para localizar registros. Edita el archivo si necesitas definir registros inseguros o bloquear registros.

nano /etc/containers/registries.conf

Añade al final (si aplica):

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

Guarda y cierra. Usa esta configuración para añadir mirrors privados o permitir registros no TLS (solo en entornos controlados).

Uso básico de Podman: imágenes y contenedores

A continuación hay ejemplos comunes para empezar.

  • Descargar una imagen Debian:
podman pull debian

Salida de ejemplo:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
  • Ver imágenes locales:
podman images

Salida de ejemplo:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB
  • Ejecutar un contenedor Debian en segundo plano:
podman run -dit debian:latest

Salida (ID del contenedor):

f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103
  • Listar contenedores en ejecución:
podman ps

Salida de ejemplo:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori
  • Inspeccionar un contenedor:
podman inspect f85c4df5ab78

Salida (recorte):

[
    {
        "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103",
        "Created": "2021-11-28T07:00:12.795302341Z",
        "Path": "bash",
        "Args": [
            "bash"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6881,
            "ConmonPid": 6878,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-28T07:00:13.551753552Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },
  • Ver logs del contenedor:
podman logs f85c4df5ab78
  • Conectarse a la shell de un contenedor en ejecución:
podman exec -it f85c4df5ab78 /bin/bash

En el contenedor verás el prompt:

root@f85c4df5ab78:/#

Salir con:

exit

Parar y eliminar contenedores e imágenes

  • Parar un contenedor:
podman stop f85c4df5ab78
  • Ver contenedores (incluidos los detenidos):
podman ps -a

Salida ejemplo:

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS                       PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     3 minutes ago  Exited (137) 10 seconds ago          competent_cori
  • Eliminar un contenedor detenido:
podman rm f85c4df5ab78
  • Atajos para el último contenedor:
podman stop --latest
podman start --latest
podman rm --latest
  • Eliminar todos los contenedores (forzar):
podman rm -f `podman ps -aq`
  • Eliminar una imagen:
podman rmi 827e5611389a

Salida ejemplo:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

Buenas prácticas, compatibilidad y alternativas

Cuándo elegir Podman

  • Migrar a Podman si quieres ejecutar contenedores sin un daemon central y mejorar el modelo rootless. Ideal para entornos donde la seguridad y el aislamiento por usuario son prioritarios.
  • Mantén Docker si dependes fuertemente de Docker Engine o de herramientas que requieren su API específica.

Compatibilidad y migración desde Docker

  • Muchos comandos son compatibles (podman run, pull, images, ps). Para scripts que usan la API de Docker, existen wrappers y paquetes como podman-docker o podman-compose que ayudan la transición.
  • Verifica archivos docker-compose.yml: algunas características avanzadas de Compose v2 pueden requerir adaptaciones.

Alternativas

  • Docker: ampliamente soportado y maduro, con ecosistema grande.
  • containerd + buildkit: solución modular para sistemas a gran escala.

Errores comunes y soluciones rápidas

  • Problema: permisos en sockets. Solución: revisa /run/podman/podman.sock y permisos del usuario.
  • Problema: fallos por cgroups v1/v2. Solución: confirma qué versión de cgroups usa tu kernel y ajusta systemd o parámetros del kernel.

Seguridad y privacidad

  • Ejecuta contenedores rootless siempre que sea posible para reducir la superficie de ataque.
  • Revisa capacidades de Linux y no otorgues CAP_SYS_ADMIN salvo que sea imprescindible.
  • Mantén las imágenes actualizadas y audita paquetes dentro de las imágenes.

Lista de verificación rápida para administrador (role-based checklist)

  • Instalar podman desde repositorio oficial.
  • Verificar podman –version y podman info.
  • Configurar /etc/containers/registries.conf si usas mirrors privados.
  • Probar ejecución rootless con un usuario no root.
  • Implementar políticas de escaneo de imágenes y actualización.

Atajos y cheat sheet

  • Descargar imagen: podman pull
  • Ejecutar en background: podman run -dit
  • Acceder a shell: podman exec -it /bin/bash
  • Listar contenedores: podman ps
  • Ver imágenes: podman images
  • Eliminar imagen: podman rmi

Mini-metodología para migrar de Docker a Podman (3 pasos)

  1. Evaluación: inventario de contenedores, dependencias de la API de Docker y usos de docker-compose.
  2. Prueba: instalar Podman en un entorno de staging y ejecutar pruebas con podman-docker/podman-compose.
  3. Migración: cambiar pipelines y scripts, monitorizar y mantener rollback plan con Docker en paralelo.

Preguntas frecuentes (FAQ)

¿Por qué Podman no necesita un daemon?

Podman lanza procesos de contenedor de forma individual y usa conmon/libpod para gestionarlos, evitando un proceso centralizado permanente.

¿Puedo usar docker-compose con Podman?

Hay proyectos y adaptadores (por ejemplo podman-compose o paquetes que proporcionan compatibilidad) que permiten ejecutar archivos docker-compose.yml con Podman, pero puede haber diferencias en características avanzadas.

Recursos adicionales

  • Documentación oficial de Podman (sitio del proyecto) para guías avanzadas sobre imágenes, pods, y creación de contenedores.

Conclusión

Instalar Podman en Debian 11 es directo y ofrece una alternativa sin daemon a Docker. Tras la instalación puedes gestionar imágenes, ejecutar contenedores y adoptar prácticas rootless para mejorar la seguridad. Evalúa compatibilidad y realiza pruebas antes de migrar entornos de producción.

Resumen:

  • Podman es compatible con OCI y opera sin daemon.
  • Comandos básicos son muy parecidos a Docker.
  • Revisa cgroups y permisos al migrar.
Autor
Edición

Materiales similares

Podman en Debian 11: instalación y uso
DevOps

Podman en Debian 11: instalación y uso

Apt-pinning en Debian: guía práctica
Sistemas

Apt-pinning en Debian: guía práctica

OptiScaler: inyectar FSR 4 en casi cualquier juego
Guía técnica

OptiScaler: inyectar FSR 4 en casi cualquier juego

Dansguardian + Squid NTLM en Debian Etch
Redes

Dansguardian + Squid NTLM en Debian Etch

Arreglar error de instalación Android en SD
Android

Arreglar error de instalación Android en SD

Conectar carpetas de red con KNetAttach
Redes

Conectar carpetas de red con KNetAttach