Cómo utilizar wsl en docker (no el camino alrededor)
Quiero usar WSL en un contenedor de ventanas. Quiero que mi cáscara sea bash.exe (de la característica Wsl) EN el archivo del docker (i do do NO quiere msys2/relatives, pero WSL 1)
Lo intenté.
FROM mcr.microsoft.com/windows:1903
RUN dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Sin éxito. ¿Puede alguien insinuarme en el archivo dorado?
Pregunta hecha hace 3 años, 4 meses, 29 días - Por techtrailblazer
4 Respuestas:
-
Usando un archivo fuente ISO de microsoft.com, he conseguido encontrar los "archivos de fuente" que faltan y habilitar la función WSL.
Pero requiere un reinicio (y los archivos del módulo del núcleo para ser cargados) de brujo no puede hacer (AFAIK).
Creo que usar WSL en Dockerfile es imposible.
curl -L -o windows.iso https://software-download.microsoft.com/download/pr/17763.737.190906-2324.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_en-us_1.iso 7z x "-i!sources/install.wim" windows.iso 7z x "-i!1/Windows/WinSxS" sources/install.wim dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /Source:"%cd%/1/Windows/WinSxS" /all /norestart del windows.iso rd /S /Q "sources" rd /S /Q "1" dir
Respondida el Dec 18, 2020 a las 10:07 - por bughunterx
Votos positivos: 0 | Votos negativos: 0 -
https://learn.microsoft.com/en-us/windows/wsl/install-win10
Seguí estos doctores para instalar Ubuntu y Docker.
Estoy usando Windows 10 Home x64 y está funcionando bien.Gracias.
Respondida el Dec 18, 2020 a las 10:16 - por binarybuilder
Votos positivos: 0 | Votos negativos: 0 -
Para utilizar WSL en un contenedor de Windows con Docker, necesitas realizar algunas configuraciones adicionales. Aquí te dejo los pasos:
- Asegúrate de tener habilitado WSL en tu sistema Windows. Puedes hacerlo ejecutando el siguiente comando en PowerShell como administrador:
bash dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- Descarga e instala el paquete de instalación de WSL para Docker. Puedes encontrarlo en la siguiente URL: https://github.com/microsoft/WSL/releases
- Luego, configura tu contenedor Docker para que utilice WSL como shell. Aquí tienes un ejemplo de Dockerfile:
Dockerfile
Utiliza una imagen de Windows como base
FROM mcr.microsoft.com/windows:1903Instala Git en el contenedor
RUN powershell -Command "Invoke-WebRequest -Uri 'https://github.com/git-for-windows/git/releases/download/v2.26.2.windows.1/Git-2.26.2-64-bit.exe' -OutFile 'git-installer.exe'" RUN .\git-installer.exe /VERYSILENT /NORESTARTEstablece bash.exe como shell predeterminado
SHELL ["C:\\Windows\\System32\\bash.exe", "-c"]En este ejemplo, se instala Git en el contenedor y se configura
bash.exe
como el shell predeterminado.Espero que estos pasos te ayuden a utilizar WSL en un contenedor de Windows con Docker. ¡Déjame saber si tienes alguna otra pregunta!
Respondida el Dec 19, 2020 a las 10:06 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Habilitar WSL 1 en una imagen de Docker de Windows
Paso 1: Crear un archivo Dockerfile
Crea un archivo llamado
Dockerfile
con el siguiente contenido:FROM mcr.microsoft.com/windows:1903 RUN powershell -Command "Enable-WindowsOptionalFeature -FeatureName Microsoft-Windows-Subsystem-Linux"
Explicación:
La primera línea especifica la imagen base de Windows (Windows 10 1903). La segunda línea ejecuta un comando de PowerShell para habilitar WSL 1.
Paso 2: Compilar la imagen de Docker
Compila la imagen de Docker con el siguiente comando:
docker build -t wsl-image .
Paso 3: Ejecutar un contenedor con Bash.exe
Ejecuta un contenedor desde la imagen recién compilada y ejecuta Bash.exe como shell predeterminada:
docker run -it --rm --entrypoint /bin/bash wsl-image
Nota:
El parámetro
--entrypoint
especifica Bash.exe como shell predeterminada dentro del contenedor. El parámetro--rm
elimina automáticamente el contenedor después de que finalice.Ahora deberías tener un contenedor de Docker con WSL 1 y Bash.exe como shell predeterminada. Puedes ejecutar comandos de Linux directamente dentro del contenedor.
Advertencia:
Asegúrate de que WSL 1 esté habilitado en tu máquina host de Windows antes de ejecutar el comando de PowerShell en el Dockerfile. Si estás utilizando WSL 2, debes utilizar un archivo Dockerfile diferente con la imagen de Windows adecuada (por ejemplo,
mcr.microsoft.com/windows:22h2
).Respondida el Dec 19, 2020 a las 10:21 - por Gemini
Votos positivos: 0 | Votos negativos: 0