Cómo solucionar el error «Docker Desktop – Error inesperado de WSL» en Windows

Lidiar con el error «WSL inesperado» en Docker Desktop puede ser bastante molesto. Especialmente si dependes de Docker para trabajar, trastear con la configuración, los permisos o los componentes faltantes de WSL (Subsistema de Windows para Linux) puede causar todo tipo de problemas. Es un fastidio porque a veces parece que solucionarlo es cuestión de prueba y error. Pero bueno, existen algunas maneras efectivas de solucionar el problema y, con suerte, lograr que Docker vuelva a funcionar correctamente.

Cómo solucionar el error «WSL inesperado» en Docker Desktop

Método 1. Instalar WSL si no está instalado.

Básicamente, Docker depende en gran medida de WSL2. Si WSL no está instalado o configurado correctamente, Docker podría generar ese error. Por lo tanto, lo primero que hay que comprobar es si WSL existe y está correctamente instalado.

  • Pulsa la tecla de Windows + S para abrir la búsqueda.
  • Escribe Símbolo del sistema y haz clic derecho para seleccionar Ejecutar como administrador. Sí, hay que hacerlo con derechos de administrador.
  • En la terminal, escribe wsl --instally presiona Intro Enter. Este comando inicia la instalación de WSL 2 si aún no está instalado. En algunas versiones, esto también instala automáticamente la actualización del kernel de Windows; por lo tanto, asegúrate de que tu sistema esté completamente actualizado.
  • Una vez finalizado el proceso, reinicie su PC.

Esto ayuda a garantizar que WSL se configure desde cero, especialmente si no estaba instalado. Asegúrate de tener instaladas las últimas actualizaciones de Windows, ya que las versiones antiguas podrían causar problemas.

Método 2. Actualizar WSL a la última versión.

A continuación, es necesario actualizar WSL. Las versiones obsoletas pueden causar problemas de compatibilidad que provocan errores. Para ello, utilice una ventana de símbolo del sistema o PowerShell con permisos de administrador.

  • Presione la tecla de Windows + R, luego escriba cmd y presione Ctrl + Shift + Enterpara obtener privilegios de administrador.
  • Confirma la solicitud que aparece.
  • Escribe wsl --updatey pulsa Enter. Esto descargará la última actualización de WSL de Microsoft.
  • Reinicia el sistema después. A veces, este paso soluciona problemas de compatibilidad o errores del kernel.

Este método se aplica si su versión de WSL está desactualizada o tiene errores, lo que puede provocar fallos en Docker Desktop al intentar iniciar WSL2.

Método 3. Modificar el archivo Settings.json en Docker.

A veces, la configuración interna de Docker se desajusta, especialmente el archivo de configuración JSON. Vale la pena revisarlo si otras soluciones no funcionan.

  • Abra el Explorador de archivos con la tecla de Windows + E.
  • Pega %Appdata%\Docker en la barra de direcciones y pulsa Enter.
  • Busca y haz doble clic en settings.json. Si no está ahí, es posible que Docker esté dañado y que sea necesario reinstalarlo.
  • Busca las líneas:
    • "integratedWslDistros" : [ ]
    • "enableIntegrationWithDefaultWslDistro" : false
  • Ajusta estos parámetros si es necesario. Por ejemplo, configurarlo "enableIntegrationWithDefaultWslDistro"de esta manera truepuede mejorar la compatibilidad de Docker. Guarda los cambios y reinicia Docker.

Asegurarse de que la configuración JSON de Docker coincida con la configuración de WSL suele solucionar el error. Por experiencia, una configuración incorrecta puede provocar fácilmente que Docker muestre errores extraños relacionados con la integración de WSL.

Método 4. Cambiar el símbolo del sistema al modo heredado.

Este es un truco ingenioso. Resulta que algunos usuarios descubren que Docker da menos problemas cuando el Símbolo del sistema está configurado en modo heredado, especialmente si la consola predeterminada funciona de forma inestable.

  • Abra la búsqueda, escriba Símbolo del sistema, haga clic con el botón derecho y elija Ejecutar como administrador.
  • Haz clic con el botón derecho en la barra superior y, a continuación, selecciona Propiedades.
  • Ve a la pestaña Opciones.

  • Marque la opción Usar consola heredada.
  • Haz clic en Aceptar y reinicia Docker. A veces, este pequeño cambio estabiliza las interacciones con WSL.

Por lo que han comentado algunos usuarios, en ciertas configuraciones, la consola tradicional funciona mejor con los componentes WSL de Docker, aunque resulta un tanto anticuada.

Método 5. Restablecer la configuración de red con Winsock reset

Los problemas de red o el mal funcionamiento de las pilas de red pueden interferir con la conectividad de WSL, provocando errores en Docker. Restablecer la configuración de Winsock y de red puede ayudar a solucionarlo.

  • Presione la tecla de Windows + R, escriba cmd y luego presione Ctrl + Shift + Enter.
  • Permitir la solicitud de Control de cuentas de usuario (UAC) si aparece.
  • Ejecuta estos dos comandos uno tras otro:
    • netsh int ip reset
    • netsh winsock reset
  • Una vez hecho esto, reinicia. Es un proceso engorroso, pero a veces la inestabilidad de la red provoca errores en WSL y Docker, así que esto soluciona el posible problema.

En algunas configuraciones, este paso ha solucionado errores de WSL relacionados con la red o problemas de bloqueo de Docker.

Método 6. Reinstalar completamente WSL y las funciones de Windows relacionadas.

Si nada más funciona, desinstalar y reinstalar completamente WSL y sus funciones opcionales puede ser el último recurso. Sí, es un proceso más complejo, pero a veces Windows simplemente se satura o deja de funcionar correctamente.

  • Pulsa la tecla de Windows + I para abrir la Configuración.
  • Navegue hasta Aplicaciones y luego haga clic en Aplicaciones instaladas.
  • Busque el Subsistema de Windows para Linux y haga clic en los puntos suspensivos ( ) que aparecen junto a él.
  • Selecciona Desinstalar. Repite el proceso para aplicaciones como Ubuntu u otras distribuciones de Linux que hayas instalado.
  • A continuación, ve a Funciones opcionales (puedes encontrarla buscando en la parte superior de Configuración) y luego haz clic en Más funciones de Windows en la parte inferior.
  • Desmarque la opción Subsistema de Windows para Linux y Plataforma de máquina virtual.
  • Haz clic en Aceptar y luego reinicia.
  • Tras reiniciar, vuelve atrás y vuelve a habilitar estas funciones. Reinicia de nuevo.
  • Finalmente, reinstale WSL a través del Símbolo del sistema con wsl --install— sí, a veces rehacer la instalación inicial desde cero elimina todos los estados dañados.

Esta es una medida drástica, pero en algunas máquinas es la única forma de empezar de cero.

Resumen

  • Asegúrese de que WSL esté instalado correctamente.
  • Actualiza WSL a la última versión.
  • Comprueba y ajusta la configuración JSON de Docker.
  • Cambie el símbolo del sistema al modo heredado si es necesario.
  • Restablecer la configuración de red: restablecimiento de Winsock y de IP.
  • Si todo lo demás falla, reinstale WSL desde cero.

Resumen

Este tipo de error no es nada divertido, desde luego. La mayoría de las veces se debe a un componente que falta o a una configuración incorrecta. Para solucionarlo, normalmente hay que instalar, actualizar o restablecer algunos ajustes de WSL y Docker. A veces, la única solución es formatear y reinstalar todo. Aun así, una vez que todo está correcto, Docker suele funcionar correctamente de nuevo. Ojalá esto le sirva a alguien para evitarse horas de quebraderos de cabeza. Funcionó en algunos casos; espero que también funcione en el tuyo.