Docker y Podman cumplen la misma función: ejecutar contenedores con imágenes del mismo formato, obtenidas de los mismos registros y lanzadas con comandos casi idénticos. podman run acepta prácticamente todo lo que acepta docker run y la mayoría de los ficheros de Compose funcionan en ambos. La diferencia radica en cómo lo hacen por dentro, y de ahí derivan las demás: la seguridad, la integración con el sistema y el coste de utilizarlos en una empresa.
En cuanto al rendimiento, sin embargo, la diferencia es mucho menor de lo que se suele leer. Los estudios publicados muestran que ambos se quedan muy cerca de ejecutar el programa directamente en el sistema y que lo que más influye en el resultado es el tipo de carga, no el motor.
| Docker Engine 29.8 | Podman 6.1 | |
| Arquitectura | Servicio (dockerd) siempre en marcha, con containerd y runc | Sin servicio: cada contenedor es un proceso más, con conmon y crun |
| Privilegios por defecto | Root (el modo sin root existe, pero hay que activarlo) | Sin root |
| Red sin root | slirp4netns o pasta, si activas el modo rootless | pasta, por defecto |
| Pods | No | Sí, como en Kubernetes |
| Integración con systemd | Con unidades escritas a mano | Quadlet: un fichero .container y systemd hace el resto |
| Compose | Docker Compose 5.5 | podman compose, que usa docker-compose o podman-compose |
| Licencia | Apache 2.0 (Engine); Docker Desktop, de pago en empresas grandes | Apache 2.0; Podman Desktop, gratis |
| Última versión (septiembre de 2026) | 29.8.1, del 15 de septiembre | 6.1.2, del 16 de septiembre |
En resumen
- Para un servidor casero con Linux, Podman es la opción más limpia: sin servicio en segundo plano, sin root por defecto y con Quadlet para que systemd arranque y vigile los contenedores.
- Si usas un NAS de Synology, Unraid o TrueNAS, la decisión ya está tomada: todos usan Docker.
- Si tu día a día son stacks de Compose copiados de guías y repositorios, Docker sigue dando menos sorpresas.
- En rendimiento puro, no elijas por eso. La diferencia es pequeña y cambia de signo según la prueba.
La diferencia de fondo: con servicio o sin él
Docker funciona mediante un servicio, dockerd, que permanece siempre activo y normalmente cuenta con permisos de root. El comando docker no ejecuta ninguna acción por sí mismo, sino que solicita al servicio que lo haga; este, a su vez, se apoya en containerd y en runc para crear el contenedor. Todos tus contenedores dependen de ese proceso.
Podman no utiliza un servicio. Al escribir podman run, el propio comando crea el contenedor mediante crun, su motor por defecto, y deja un pequeño proceso de vigilancia, conmon, por cada contenedor. Si no hay contenedores activos, no hay nada de Podman ejecutándose.
De ahí salen tres consecuencias prácticas:
- Seguridad. En Docker, quien puede hablar con el servicio puede, en la práctica, hacer cualquier cosa como root en la máquina: por eso añadir un usuario al grupo
dockerequivale a darle root. Podman funciona sin root por defecto: cada usuario tiene sus contenedores, y un contenedor comprometido parte de los permisos de ese usuario, no de los del sistema. Docker también tiene un modo sin root, pero hay que instalarlo y activarlo aparte. - Un único punto de fallo. Si el servicio de Docker se reinicia o se cuelga, afecta a todos los contenedores a la vez. En Podman cada contenedor es independiente.
- Encaje con el sistema. Como en Podman un contenedor es un proceso normal, systemd puede gestionarlo directamente. Es la base de Quadlet, que explicamos más abajo.
Podman incluye además pods, que son grupos de contenedores que comparten red, al igual que ocurre en Kubernetes, y permite generar y leer ficheros YAML de Kubernetes mediante podman kube generate y podman kube play. Docker no tiene un equivalente.
Rendimiento: qué dicen los estudios
Este es el terreno donde más circulan cifras sin contexto y donde la elección importa menos. El estudio más exhaustivo que compara ambos motores es A qualitative and quantitative analysis of container engines, publicado en 2024 en Journal of Systems and Software. En él se miden Docker, Podman y otros motores frente a la ejecución del mismo programa directamente en la máquina, mediante pruebas de CPU, memoria, disco, red y aplicaciones reales. Sus conclusiones son las siguientes:
- Los contenedores apenas añaden coste en la mayoría de las pruebas: los resultados quedan muy cerca de los de la máquina sin contenedores.
- Podman queda muy cerca del sistema sin contenedores, y Docker muestra una pequeña pérdida en algunas pruebas concretas: la generación de ficheros, el servidor web nginx y una aplicación de blog.
- No siempre gana el mismo. En lectura de disco, Docker perdió un 7 % frente al sistema y Podman un 9 %.
- Hay pruebas en las que todos pierden por igual: en las de Python, todos los motores de uso general quedaron alrededor de un 30 % por debajo del sistema sin contenedores. Ese coste es de los contenedores en general, no de uno u otro.
Otros trabajos apuntan en la misma dirección: Podman suele arrancar antes los contenedores pequeños y de vida corta, mientras que la ventaja se diluye en los grandes y de larga duración. Desconfía de cualquier comparación que dé una sola cifra de «X % más rápido»: depende de la carga y de cómo se configure cada uno.
Lo que sí se nota
- En reposo, Docker siempre consume algo, porque su servicio está en marcha aunque no haya contenedores. Podman no consume nada. En un servidor potente da igual; en una Raspberry Pi o un miniPC modesto, cada megabyte cuenta.
- La red sin root es más lenta que la red con root, en los dos. Podman usa por defecto pasta, que es bastante más rápida que el antiguo slirp4netns, pero para un servicio con mucho tráfico conviene medir, o usar la red del sistema.
Compose, Quadlet y el día a día
Los comandos son casi idénticos. Muchos usuarios de Podman se limitan a crear el alias alias docker=podman para seguir con sus costumbres. Las imágenes son las mismas, utilizan el formato estándar OCI y se descargan de Docker Hub o de cualquier otro registro.
Compose es donde aparecen las diferencias. Docker Compose está integrado en Docker y es la referencia, por lo que casi todas las guías de self-hosting incluyen su compose.yaml. Podman lo soluciona mediante podman compose, que utiliza el propio docker-compose internamente y se comunica con Podman como si fuese Docker, o bien a través de la herramienta podman-compose. Los ficheros sencillos funcionan igual, pero pueden aparecer diferencias con funciones avanzadas, como los perfiles, algunos healthchecks o los secretos durante la construcción.
Quadlet es la gran baza de Podman. Solo tienes que escribir un fichero corto con la extensión .container y dejarlo en la carpeta de configuración de systemd. El sistema se encarga entonces de crear el contenedor, arrancarlo junto con la máquina, reiniciarlo en caso de fallo y guardar sus registros con los del resto del sistema. Para un servidor casero que debe funcionar solo durante meses, esto es más robusto que depender de las políticas de reinicio de Docker.
En cuanto a las redes, que es donde suelen aparecer más dudas al montar varios servicios, disponemos de una guía aparte: los 6 tipos de redes de Docker y cuál necesitas. Los conceptos se aplican casi igual en Podman.
Cuánto cuesta cada uno
Existe un malentendido muy extendido al respecto: Docker Engine es gratuito, cuenta con una licencia libre Apache 2.0 y no hay que pagar nada por usarlo en un servidor Linux, ya sea para uso personal o para una empresa.
La aplicación para Windows y macOS, Docker Desktop, es la que es de pago, y solo para empresas con más de 250 empleados o una facturación anual superior a 10 millones de dólares. Para estas organizaciones, las suscripciones con pago anual cuestan 9 dólares al mes por usuario en el plan Pro, 15 en el Team y 24 en el Business, lo que supone unos 8, 13 y 21 €, respectivamente. En una empresa de 50 programadores con el plan Business, el coste es de unos 14.400 dólares al año, unos 12.400 €.
Podman y Podman Desktop son gratuitos para todo el mundo, sin importar el tamaño de la empresa. Por este motivo, muchas compañías han sustituido Docker Desktop por Podman Desktop en los portátiles de sus empleados, aunque continúen utilizando Docker Engine en los servidores.
Cuál elegir
Un NAS de Synology, Unraid o TrueNAS. Docker, sin duda: es la opción que utilizan sus gestores de contenedores y no tiene sentido luchar contra el sistema. Si tienes un Synology, en las mejores aplicaciones para Synology hay algunas que se instalan como contenedor.
Un servidor casero con Linux, un miniPC o una Raspberry Pi. Podman con Quadlet si empiezas desde cero y buscas algo sólido: sin procesos innecesarios en marcha, contenedores sin root y bajo la supervisión de systemd. Docker si vas a copiar muchos stacks de Compose de foros y guías y prefieres que funcionen a la primera.
Fedora, RHEL, AlmaLinux o Rocky Linux. Podman: viene instalado y es la herramienta oficial de estas distribuciones. Red Hat lo usa en lugar de Docker desde RHEL 8.
Un portátil de trabajo con Windows o macOS en una empresa grande. Podman Desktop te permite ahorrarte la licencia de Docker Desktop. Al ser algo menos maduro, conviene probarlo con los proyectos reales del equipo antes de hacer el cambio para todo el mundo.
Aprender contenedores. Cualquiera de los dos: lo que aprendas sirve para ambos. Docker cuenta con más documentación y más respuestas en foros; Podman te acostumbra a trabajar sin root desde el principio.
Una aclaración frecuente: Kubernetes no usa ninguno de los dos para ejecutar contenedores desde la versión 1.24, de 2022, momento en el que eliminó su adaptador para Docker. Utiliza directamente containerd o CRI-O. Las imágenes que construyas con Docker o con Podman funcionan igual en Kubernetes.











