- Implementación de contenedores nativos mediante wslc.exe para reducir la sobrecarga del sistema.
- Optimización del rendimiento utilizando el backend de WSL 2 frente a versiones anteriores.
- Integración fluida con Visual Studio Code y Dev Containers para agilizar el flujo de trabajo.
- Análisis de requisitos de licencia y versiones de Windows necesarias para cada método.
Si eres desarrollador y trabajas en Windows, seguramente te hayas topado con el eterno dilema de querer la potencia de Linux sin tener que formatear el PC o pelearte con máquinas virtuales que se comen toda tu RAM. Afortunadamente, el ecosistema ha evolucionado una barbaridad y ahora tenemos opciones que hacen que desplegar contenedores Docker en WSL sea un paseo, permitiéndonos tener lo mejor de los dos mundos en una sola máquina.
La cosa ha cambiado mucho últimamente, pasando de configuraciones engorrosas a soluciones casi nativas. Ya sea que busques una herramienta profesional con interfaz gráfica o prefieras la ligereza de una CLI integrada directamente en el sistema, existen rutas claras para montar tu entorno de desarrollo sin que tu ordenador pida clemencia por la falta de memoria.
El nuevo paradigma: Contenedores nativos con wslc.exe

Microsoft ha dado un golpe sobre la mesa lanzando una funcionalidad en vista previa pública que permite ejecutar contenedores de Linux de forma nativa. La estrella aquí es wslc.exe, una interfaz de línea de comandos que imita los comandos de Docker que ya conocemos, pero sin la necesidad de instalar Docker Desktop. Lo más curioso es que no utiliza una distribución de WSL estándar, sino que levanta micro-VMs de Hyper-V ligeras para cada contenedor, lo que aisla mucho mejor los procesos y mejora la seguridad.
Para empezar a darle caña a esta herramienta, necesitas tener Windows 11 (preferiblemente la compilación 26100 o superior) y actualizar WSL a la versión preliminar mediante el comando wsl --update --pre-release. Una vez hecho esto, basta con ejecutar wsl --install-feature containers para tener todo listo. Para comprobar que no hay fallos, puedes lanzar un contenedor rápido con wslc run --rm hello-world y, si ves el mensaje de saludo, es que tu entorno está operativo.
Manos a la obra: Creando tu propia imagen
Cuando quieras pasar de los ejemplos básicos a algo real, lo ideal es usar VS Code con su extensión de WSL. Imagina que tienes un proyecto de Django; solo necesitas crear un archivo llamado Containerfile en la raíz donde definas la imagen base (como Python 3), copies los requisitos e instales las dependencias. Luego, usas el comando wslc build -t nombre-de-tu-app . para generar la imagen personalizada.
Para ponerla en marcha, el comando clave es wslc run -d -p 8000:8000 nombre-de-tu-app, lo que permite que Windows acceda al puerto del contenedor. Si quieres ver qué está pasando dentro, puedes usar wslc container logs o ejecutar comandos internos con wslc exec. Si notas que el disco se está llenando, no olvides usar wslc container prune para borrar lo que ya no uses.
La alternativa clásica: Docker Desktop y WSL 2

Aunque lo nativo suena genial, Docker Desktop sigue siendo el estándar por su madurez y su interfaz visual. La clave aquí es usar el backend de WSL 2, que es infinitamente más rápido que la versión 1 gracias a que incluye un kernel de Linux real y un sistema de archivos ext4 nativo. Esto supone una mejora brutal en la velocidad de entrada y salida de archivos, haciendo que operaciones como npm install o git clone vuelen.
Si vienes de una instalación antigua, lo más sano es hacer una limpieza a fondo. Borrar carpetas residuales en AppData y eliminar cualquier rastro de DOCKER_HOST en el archivo .bashrc es fundamental para evitar el típico error de conexión con el demonio de Docker. Una vez limpio, instalas la versión más reciente de Docker Desktop y te aseguras de que en la configuración esté marcada la opción de integración con tu distro de WSL.
Configuración manual para usuarios avanzados
Hay quien prefiere no usar Docker Desktop por temas de licencias corporativas o consumo de recursos. En ese caso, se puede instalar el motor de Docker directamente en Ubuntu dentro de WSL. Esto implica crear un usuario no root para evitar riesgos de seguridad, otorgarle privilegios de sudo y ejecutar la instalación de docker.io y docker-compose vía terminal. Es un camino más manual, pero te da un control total sobre el demonio y los recursos del sistema.
Comparativa y elección de camino

Elegir entre wslc y Docker Desktop depende básicamente de tu perfil. Si trabajas en una empresa grande y quieres evitar costes de licencias, o si solo necesitas contenedores para desarrollo rápido en VS Code, wslc es la opción ganadora. Además, la integración con Dev Containers de VS Code es sencilla: solo hay que cambiar la ruta del Docker Path por wslc en los ajustes del JSON.
Por otro lado, si dependes de orquestadores como Kubernetes o Rancher Desktop, Docker Desktop sigue siendo imprescindible, ya que la solución nativa de WSL aún no cubre esa capa de orquestación. Asimismo, recuerda que para usar las funciones de aislamiento de Hyper-V necesarias para wslc, Windows 11 Pro o Enterprise es un requisito obligatorio, ya que la versión Home no soporta estas características.
Tener un entorno de contenedores bien configurado en Windows transforma la experiencia de desarrollo, permitiéndonos saltar entre herramientas de análisis de datos, servidores web y bases de datos sin ensuciar el sistema operativo principal. Ya sea optando por la ligereza de las micro-VMs de Microsoft o la robustez de la suite de Docker, la clave está en aprovechar la arquitectura de WSL 2 para maximizar el rendimiento y mantener la flexibilidad en nuestro flujo de trabajo diario.