Un escritor de XDA ejecutó su completo homelab en contenedores WSL durante una semana y encontró que “no mucho” se rompió. Esa es la evaluación honesta: WSL 2 ha madurado, Docker Desktop se ha vuelto más pesado, y mucho trabajo de homelab ahora funciona bien dentro de una distribución Linux en Windows sin el costo de VM de Docker Desktop. Estas son las mejores aplicaciones para la migración de contenedores WSL desde Docker en el escritorio, las herramientas que permiten que una máquina Windows aloje contenedores sin pagar una licencia por asiento o iniciar una segunda VM para ejecutar el demonio.
Probamos siete herramientas dentro de WSL 2 en Windows 11 24H2 con un portátil AMD Ryzen y una estación de trabajo Nvidia. Cada opción se instala en una imagen estándar de Ubuntu 24.04 o Debian 12 WSL, sobrevive a un reinicio de Windows, y reemplaza completamente el CLI de Docker o se queda detrás del mismo. Las diferencias aparecen alrededor del paso de GPU, la compatibilidad con systemd, y cómo cada herramienta maneja la costura del sistema de archivos Windows-Linux que causa la mayoría de las migraciones fallidas.
Qué buscar en un stack de contenedores WSL
- WSL 2 con systemd activado. Las herramientas de contenedores modernas quieren que pid 1 sea systemd.
- Sin privilegios donde sea posible. Sin demonio ejecutándose como root dentro de la distribución.
- Acceso a GPU. Nvidia CDI o la ruta CUDA-on-WSL para que el entrenamiento e inferencia funcionen.
- Volúmenes persistentes en el lado Linux. Los bind mounts se quedan en el sistema de archivos ext4, no en
/mnt/c. - Compatibilidad con Docker-CLI. Los comandos
dockerydocker composeexistentes siguen funcionando durante la migración. - Inicio automático al iniciar sesión en Windows. Task Scheduler o la entrada de autoarranque de WSL mantiene los servicios activos sin un
wsl -dmanual.
Comparación rápida
| Aplicación | Mejor para | Plataformas | Plan gratuito | Nivel pagado | Calificación |
|---|---|---|---|---|---|
| WSL 2 | La capa de distribución en la que se asienta todo lo demás | Windows 10, 11 | Completamente gratis | Ninguno | 4.8 |
| Podman | CLI docker sustituto sin demonio |
Ubuntu, Debian, Fedora en WSL | Completamente gratis | Podman Desktop, gratis | 4.7 |
| Rancher Desktop | Stack compatible con Docker administrado | Windows | Completamente gratis | Ninguno | 4.6 |
| Distrobox | Múltiples distribuciones Linux lado a lado | Cualquier distribución WSL | Completamente gratis | Ninguno | 4.7 |
| systemd-nspawn | Contenedores OS ligeros integrados en systemd | WSL con systemd | Completamente gratis | Ninguno | 4.5 |
| nerdctl | CLI nativo de containerd cuando un reemplazo de Docker es suficiente | Ubuntu, Debian, Fedora en WSL | Completamente gratis | Ninguno | 4.7 |
| Lima | VMs Linux desde un archivo de configuración para portabilidad | Windows vía WSL, macOS, Linux | Completamente gratis | Ninguno | 4.7 |
Las aplicaciones
1. WSL 2 para contenedores — Mejor capa de distribución
WSL 2 es la base que convierte Windows en un host de contenedores viable. Con el indicador systemd activado en /etc/wsl.conf, una instalación de Ubuntu o Debian arranca en un init real, que es lo que desbloquea Podman, nerdctl y todo lo demás en esta lista. El límite de memoria del lado de Windows en .wslconfig impide que los contenedores descontrolados consuman el host, y el modo de redes en versiones recientes evita el juego de puertos localhost.
Donde falla: La I/O entre sistemas de archivos es lenta. Mantén los datos del contenedor en el lado ext4 de Linux, no en /mnt/c/Users/..., o un compose que tardaba 2 segundos en Docker Desktop tardará 40 aquí.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Windows 10 21H2 y posterior, Windows 11.
Descargar: learn.microsoft.com/windows/wsl · github.com/microsoft/WSL
Conclusión: Activa systemd primero, luego elige una herramienta de contenedores. Todo lo siguiente asume este paso.
2. Podman para WSL — Mejor CLI de Docker sin demonio
Podman entrega un CLI compatible con docker, podman-compose para archivos compose, y funciona sin privilegios. Dentro de una imagen WSL Ubuntu, dnf o apt install podman y alias docker=podman cubre la mayoría de la migración en una tarde. La primitiva de pod de Podman se asigna a Kubernetes mejor que Docker compose, lo que hace que el eventual paso a un orquestador real sea menos una reescritura.
Donde falla: Algunos archivos compose usan sintaxis específica de Docker que podman-compose maneja imperfectamente. Podman Compose v2 corrige la mayoría; los casos extremos persisten.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno. Podman Desktop también es gratis.
Plataformas: Ubuntu, Debian, Fedora y otras distribuciones dentro de WSL.
Descargar: podman.io · github.com/containers/podman
Conclusión: La opción correcta para cualquiera que abandone Docker Desktop por su licencia o huella de memoria.
3. Rancher Desktop en WSL — Mejor stack compatible con Docker administrado
Rancher Desktop envuelve containerd y Moby en un instalador de Windows, usa WSL bajo el capó, y ofrece una interfaz para imágenes y Kubernetes. También expone binarios docker y docker compose con el motor de contenedores de tu elección. Eso lo convierte en el reemplazo más fluido de Docker Desktop cuando el resto del equipo aún espera que docker simplemente funcione.
Donde falla: El presupuesto de RAM es mayor que Podman raw dentro de WSL porque Rancher Desktop ejecuta su propia estructura de VM de utilidad encima de la distribución WSL.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Windows 10, 11 (backend WSL 2).
Descargar: rancherdesktop.io · github.com/rancher-sandbox/rancher-desktop
Conclusión: Elige Rancher Desktop cuando el equipo quiere un reemplazo de Docker Desktop, no una reescritura completa del flujo de trabajo.
4. Distrobox en WSL — Mejor multi-distribución lado a lado
Distrobox crea y gestiona contenedores que contienen distribuciones completas e integran con la imagen WSL anfitriona, por lo que un proyecto que necesita herramientas de Fedora y otro que necesita Ubuntu 20.04 ambos viven en la misma máquina. Bajo WSL, eso convierte una distribución WSL en el lanzador de un pequeño conjunto de entornos construidos a propósito, y cada uno tiene sus propias herramientas de contenedores, acceso a GPU y gestor de paquetes.
Donde falla: No es un reemplazo de Docker por sí solo. Se sienta junto a Podman o nerdctl y maneja el problema “Necesito un entorno de compilación coincidente”.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Cualquier distribución WSL con Podman o Docker.
Descargar: distrobox.it · github.com/89luca89/distrobox
Conclusión: Añade el patrón “muchas distribuciones en un cuadro de Windows” sin girar imágenes WSL separadas.
5. systemd-nspawn en WSL — Mejor contenedores OS ligeros
systemd-nspawn es lo que systemd en sí proporciona para contenedores a nivel de OS. No es un reemplazo completo de Docker, pero es la forma más ligera de ejecutar un sandbox de distribución dentro de WSL sin otro demonio. Las cargas de trabajo heredadas que esperan un init completo, cron y un bus systemd se comportan dentro de nspawn mejor que en un contenedor OCI despojado.
Donde falla: Sin historia de registro de imágenes. Traes tu propio sistema de archivos raíz, usualmente debootstrap.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Distribuciones WSL que tienen systemd habilitado.
Descargar: freedesktop.org/wiki/Software/systemd · systemd/systemd en GitHub
Conclusión: El contenedor para la carga de trabajo que pretende ser un servidor Linux completo.
6. nerdctl en WSL — Mejor CLI nativo de containerd
nerdctl es el CLI compatible con Docker del proyecto containerd, y está lo suficientemente cerca de docker como para que los scripts no noten el cambio. Dentro de WSL se empareja bien con containerd instalado directamente desde la versión de containerd, sin Docker ni Podman en la imagen. Esa combinación es la forma más eficiente de ejecutar contenedores OCI en Windows sin la VM de Docker Desktop.
Donde falla: Buildkit para compilaciones de imágenes necesita un paso extra. Una vez configurado, nerdctl build funciona.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Ubuntu, Debian, Fedora en WSL.
Descargar: github.com/containerd/nerdctl · containerd.io
Conclusión: La herramienta correcta si sabes que tus cargas de trabajo se ejecutan en containerd de todas formas y no necesitas los extras de Docker.
7. Lima en WSL — Mejor VMs-como-configuración para portabilidad
Lima describe VMs de Linux en un archivo YAML y las ejecuta de la misma manera en macOS, Linux y Windows vía WSL. Eso lo convierte en la herramienta que mantiene el “host de contenedores” reproducible incluso cuando la computadora portátil del desarrollador cambia entre plataformas. Un equipo puede compartir una configuración de Lima y todos obtienen la misma configuración de containerd o Docker independientemente del SO.
Donde falla: Lima en Windows aún se basa en WSL como motor de VM, por lo que los límites de memoria y redes de WSL subyacentes se aplican.
Precios:
- Gratis: Completamente gratis.
- Pagado: Ninguno.
Plataformas: Windows (vía WSL 2), macOS, Linux.
Descargar: lima-vm.io · github.com/lima-vm/lima
Conclusión: Usa Lima cuando el archivo de configuración es más importante que el motor de contenedores específico.
Cómo elegir el correcto
- Si quieres la migración menos invasiva: Rancher Desktop, mantén el CLI
docker, cambia el motor detrás. - Si quieres sin demonio y sin pregunta de licencia: Podman dentro de una WSL Ubuntu habilitada para systemd.
- Si necesitas múltiples distribuciones en un cuadro de Windows: Distrobox encima de Podman.
- Si una carga de trabajo quiere un OS completo con init: systemd-nspawn dentro de WSL.
- Si el equipo usa macOS, Linux y Windows: Lima con una configuración YAML compartida.
FAQ
¿Puedo ejecutar archivos Docker Compose dentro de WSL sin Docker Desktop?
Sí. Instala Docker Engine directamente dentro de una distribución WSL habilitada para systemd, o usa Podman con podman-compose, o Rancher Desktop con el motor Moby. Los tres ejecutan archivos docker-compose.yml sin la VM de Docker Desktop.
¿WSL 2 admite GPUs de Nvidia para contenedores?
Sí en controladores Nvidia compatibles. Instala el kit de herramientas CUDA-on-WSL dentro de la distribución, expón la GPU con Nvidia Container Toolkit, y los contenedores la ven. La compatibilidad con AMD en WSL se limita a compilaciones de ROCm más nuevas y tarjetas específicas.
¿Debería mantener los datos del contenedor en unidades de Windows o en el lado de Linux?
Mantenlo en el lado ext4 de Linux. Las monturas de vinculación a /mnt/c cruzan la costura del sistema de archivos 9P y ralentizan las compilaciones y bases de datos hasta arrastrarse. Usa el acceso al sistema de archivos de Windows solo para editar el código fuente.
¿Cómo hago que los contenedores de WSL se inicien automáticamente al iniciar sesión en Windows?
Dos caminos. Añade boot.command en /etc/wsl.conf dentro de la distribución (WSL 2 con systemd lo ejecuta), o añade una entrada de Task Scheduler que ejecute wsl -d Ubuntu -u root -- systemctl start yourservice.service al iniciar sesión.
¿Es WSL 2 lo suficientemente rápido para un homelab que solía ejecutarse en Docker Desktop?
Para la mayoría de las cargas de trabajo de homelab sí, y a menudo más rápido porque no hay VM de utilidad extra en el stack. Las bases de datos y I/O pesado se benefician más cuando los datos viven en el lado ext4; los servicios ligeros no ven diferencia de ninguna manera.