Resumen:
Microsoft ha movido WSL Containers de una versión preliminar pública a una versión disponible de forma general. Los usuarios pueden ejecutar "wsl --update" para obtener funciones relacionadas, incluida la herramienta de línea de comandos wslc.exe y la API de WSL Containers. Aunque el número de versión oficial en GitHub es WSL 3.0.1, esto no significa que Microsoft haya lanzado WSL 3; Microsoft ha negado previamente la existencia de esta nueva versión.

Anteriormente, si los desarrolladores de Windows querían ejecutar contenedores de Linux, generalmente necesitaban instalar Docker Desktop o configurar manualmente Docker Engine en la distribución WSL de Linux. WSL Containers integra los flujos de trabajo de contenedores directamente en WSL. wslc.exe se puede utilizar para crear, ejecutar, administrar e implementar contenedores de Linux desde Windows. También proporciona contenedor.exe como alias. Los desarrolladores familiarizados con Docker también pueden utilizar comandos similares. La API de soporte permite que las aplicaciones nativas de Windows creen y controlen contenedores de Linux a través de código, y admite llamadas C# y C++/WinRT, entrada y salida estándar, montaje de archivos, acceso a red y GPU.

"Nativo" aquí no significa que el contenedor se ejecuta en el kernel de Windows. En realidad, el contenedor se ejecuta en el kernel de Linux en la máquina virtual WSL. Microsoft ha rediseñado la forma en que se administran las sesiones de contenedor. Las aplicaciones WSL normales crean máquinas virtuales a través del servicio de Windows wslservice.exe con permisos superiores; WSL Containers utiliza el servicio para crear un subproceso llamado wslcsession.exe, que crea contenedores, monta directorios y vincula puertos de red en nombre del usuario. Microsoft dijo que cada sesión está organizada por un proceso independiente, lo que puede fortalecer el aislamiento; los permisos necesarios para las operaciones de sesión también son inferiores a los de wslservice.exe, lo que ayuda a mejorar la seguridad.
Cada sesión tiene un disco duro virtual independiente, que se guarda en el directorio de datos de la aplicación del usuario. Los contenedores pueden usar carpetas de Windows a través de montajes de volúmenes. Microsoft usa virtiofs para compartir directorios con máquinas virtuales, diciendo que es aproximadamente el doble de rápido que la solución Plan 9 utilizada por las distribuciones WSL tradicionales para acceder a la unidad C. Para contenedores que requieren sistemas de archivos nativos de Linux o capacidad de almacenamiento limitada, se pueden utilizar volúmenes de disco duro virtuales.
>
La versión oficial agrega comandos como reinicio de contenedores, copia de archivos, conexión y desconexión de red, más opciones de controladores de red, verificación del estado de los contenedores y montaje de directorios al crear y ejecutar contenedores. La red también introduce una arquitectura llamada Consommé. El tráfico de red de la máquina virtual Linux ingresará a la cola virtio en forma de tramas Ethernet y luego el proceso de Windows se ejecutará mientras el usuario maneja las consultas DNS, el tráfico TCP y UDP y el mapeo de puertos. Microsoft dijo que este método es más compatible con VPN y firewalls y mejorará los problemas de red que los usuarios de WSL han encontrado durante mucho tiempo. En pruebas anteriores, Windows podía acceder al servicio Flask que se ejecuta en el contenedor a través de localhost sin configuración de red adicional.

Microsoft también está agregando capacidades de administración y seguridad para uso empresarial. Los administradores de TI pueden habilitar o deshabilitar los contenedores WSL a través de Microsoft Intune y restringir las imágenes de los contenedores para que solo se extraigan de los registros aprobados. La integración WSL existente de Microsoft Defender for Endpoint también se extiende a los contenedores, mostrando la actividad de procesos, archivos y redes dentro del contenedor y correlacionándola con el host de Windows. Microsoft dijo que estas capacidades, combinadas con Intune y Defender, pueden proporcionar los controles de seguridad necesarios para los entornos empresariales.

En términos de herramientas de desarrollo, Microsoft anunció que la extensión VS Code Dev Containers puede usar wslc como controlador de contenedor. La extensión VS Code Containers y Aspire también admiten esta función. El gerente de producto de Microsoft WSL, Craig Loewen, dijo que los usuarios solo necesitan seleccionar wslc como programa ejecutable en la configuración. Sin embargo, algunos desarrolladores han informado que incluso si la extensión se reemplaza con la versión oficial, Dev Containers seguirá indicando que no se puede encontrar el comando Docker, lo que indica que es posible que aún sea necesario verificar y ajustar la integración actual del editor.
La compatibilidad con Compose, que los desarrolladores más esperan, aún está en desarrollo. Compose puede escribir varios contenedores, como API de front-end, back-end, base de datos y caché, en el mismo archivo de configuración compose.yaml y luego iniciar todo el conjunto de servicios con un solo comando. Microsoft dijo que Compose es la característica más solicitada de wslc en la actualidad y espera que en el futuro "wsl compose up" pueda ejecutar directamente archivos de configuración existentes sin modificaciones. Durante las pruebas anteriores, debido a la falta de Compose, los desarrolladores solo podían iniciar servicios en proyectos de múltiples contenedores uno por uno.
>
Todavía hay lagunas en algunas escenas avanzadas. Los ingenieros de Microsoft mencionaron que los desarrolladores pueden intentar utilizar el proyecto comunitario wslc-remote que mantienen para crear y enviar imágenes dentro de la distribución WSL; Microsoft espera admitir soporte nativo en el futuro, pero aún necesita lidiar con muchas situaciones especiales. Otros usuarios dijeron que la falta de compatibilidad con el parámetro "--privileged" los obligó a volver a utilizar Docker para ejecutar clústeres de Kubernetes tipo y k3d. Microsoft dijo que las funciones relacionadas se lanzarán pronto, el código ingresó a la rama principal y se espera que ingrese pronto a la etapa de vista previa. Por lo tanto, la disponibilidad oficial no significa que wslc tenga todas las funciones de una plataforma de contenedores madura.
WSL Containers también es compatible con Windows 10 y Windows Server. El gerente de producto WSL de Microsoft dijo que siempre que el sistema actual admita WSL, se pueden ejecutar contenedores; Windows Latest también probó wslc en Windows 10 antes y creó y ejecutó con éxito el panel de Flask. Microsoft confirmó que Windows Server también admite el uso de esta función en entornos de producción.
>
El informe contrasta este cambio con la actitud pasada de Microsoft hacia Linux. El ex director ejecutivo de Microsoft, Steve Ballmer, llamó una vez a Linux un "cáncer". Hoy en día, Microsoft continúa mejorando WSL, abriéndolo y mejorando el acceso a archivos y las capacidades de red entre Windows y Linux. Microsoft dijo que Linux ya no es solo un entorno de desarrollo, sino que también puede albergar IA y cargas de trabajo nativas de la nube; El artículo también menciona que Google está proporcionando soporte nativo para Windows 11 y WSL para sus nuevas herramientas de inteligencia artificial, y Canonical dijo que la tasa de crecimiento de Ubuntu en Windows 11 ha superado la de las computadoras nativas con Linux. A pesar de esto, el autor cree que la mayoría de los desarrolladores no abandonarán Docker Desktop inmediatamente antes de completar Compose y algunas funciones avanzadas; Si la configuración de Compose no modificada se puede ejecutar directamente en el futuro, más personas podrían considerar desinstalar Docker Desktop.
Comentarios