Acabo de actualizar a Windows 10 Home de mayo de 2020, activé WSL2 e instalé Docker Desktop .
WSL2 debe estar instalado en el disco de mi sistema, que es un SSD pequeño. No quiero llenarlo con imágenes acoplables. ¿Cómo cambio la ruta de las imágenes de la ventana acoplable? Me gustaría usar una ruta en mi gran sistema de archivos de Windows.
Laubicación de la imagen es algo confusa. Creo que está en /mnt/wsl/docker-desktop-data/ .
¿Cómo cambio el directorio de imágenes acoplables dentro de WSL2? ¿Puedo cambiar la configuración de la ventana acoplable para seleccionar una ruta dentro de /mnt/d o montar una ruta desde /mnt/d sobre los directorios de datos de la ventana acoplable?
Encontré esta herramienta de pxlrbt en github. Está utilizando la importación/exportación wsl estándar y es bastante seguro. Acabo de mover mi distribución docker-desktop-data a una unidad diferente y funciona bien.
Editar: volver a registrar docker-desktop establecería los datos docker predeterminados en la unidad C ahora, por lo que solo deberíamos anular el registro de docker-data como la respuesta aceptada.
Tu puedes hacer
wsl --unregister docker-desktop-data wsl --import docker-desktop-data D:\wsl\docker-desktop-data "C:\Program Files\Docker\Docker\resources\wsl\wsl-data.tar" --version=2El archivo tar es el archivo que se usa para instalar, y antes es su nuevo destino.
Esto siempre funciona mientras move-wsl o lxrunoffline no funcionaron para mí en los timbres rápidos. Y a veces tienes que desinstalar/instalar docker primero
La imagen de disco de WSL 2 docker-desktop-data vm normalmente residiría en: %USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
Siga lo siguiente para reubicarlo en otra unidad/directorio, conservando todos los datos existentes de la ventana acoplable (probado con Docker Desktop 2.3.0.4 (46911), y continuó funcionando después de actualizar la 3.1.0 (51484)):
En primer lugar, apague el escritorio de Docker haciendo clic con el botón derecho en el icono de Docker Desktop y seleccione Salir de Docker Desktop.
Luego, abra su símbolo del sistema:
wsl --list -v Debería poder ver, asegúrese de que el ESTADO para ambos esté Detenido. ( wsl --shutdown )
NAME STATE VERSION * docker-desktop Stopped 2 docker-desktop-data Stopped 2Exportar docker-desktop-data a un archivo
wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar" Anule el registro de docker-desktop-data de wsl, tenga en cuenta que después de esto, su archivo ext4.vhdx se eliminará automáticamente (así que haga una copia de seguridad primero si tiene una imagen/contenedor existente importante):
wsl --unregister docker-desktop-dataImporte los datos del escritorio de la ventana acoplable nuevamente a wsl, pero ahora ext4.vhdx residiría en una unidad/directorio diferente:
wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\data\docker-desktop-data.tar" --version 2Vuelva a iniciar Docker Desktop y debería funcionar
Puede eliminar el archivo D:\Docker\wsl\data\docker-desktop-data.tar (NO el archivo ext4.vhdx ) si todo le parece bien después de verificar
En el hogar de Windows 10, el escritorio de la ventana acoplable crea la VM en el directorio ""C:\Users\xxx\AppData\Local\Docker" y es esta VM la que contiene las imágenes descargadas de la ventana acoplable. Si desea cambiar la ubicación de la VM de C: a un directorio diferente, puede hacer esto creando un cruce en Windows (antes de la instalación del escritorio de la ventana acoplable) usando un comando como el siguiente:
mklink /j "C:\Usuarios\xxx\AppData\Local\Docker" "D:\Usuarios\xxx\AppData\Local\Docker"
Tenga en cuenta que antes de ejecutar el comando, la estructura del directorio de destino debe existir, mientras que debe eliminar el directorio C:\Users\xxx\AppData\Local\Docker si ya existe; de lo contrario, el comando podría fallar. Ahora instale el escritorio de Docker en Windows 10 Home y listo, puede ver cosas dentro del directorio "D:\Users\xxx\AppData\Local\Docker", es decir, el archivo de imagen del disco duro de la VM de Docker que contendrá todas las imágenes de Docker descargadas.
C:\Users\xxx\AppData\Local\Docker a la nueva rutaC:\Users\xxx\AppData\Local\Docker ya no esté allí mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"Ampliar la respuesta de @Attila Badi sería también dar el mismo tratamiento a la carpeta C:\ProgramData\Docker, que parece usarse para WSL/Windows Containers. Incluso si mueve las carpetas de datos de Docker, todavía tendrá una carpeta ProgramData\Docker de unidad de arranque de proporciones masivas, especialmente si no puede o no quiere limpiar las imágenes. No puede migrarlo o moverlo una vez instalado. El uso de la configuración avanzada del motor Docker funciona en el modo de contenedor de Linux, pero no en Windows y viceversa y tiene problemas para iniciarse.
Pasos que seguí:
Desinstalar Docker. Lo sé... Asegúrate de haber guardado lo que necesitas.
Cree las carpetas acoplables primarias que consumen espacio, en una ubicación en la que tenga mucho espacio, por ejemplo:
D:\Data\Docker\ProgramData_Docker & D:\Data\Docker\AppData_Local_Docker
Cree carpetas vinculadas ejecutando lo siguiente en una ventana de comandos en modo administrador:
mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Data\Docker\ProgramData_Docker" mklink /j "C:\ProgramData\Docker" "D:\Data\Docker\AppData_Local_Docker"Debería poder extraer alegremente las imágenes del servidor de Windows, pero no obstruir su unidad de arranque.
Para mí, la ventana acoplable no comenzará con la unión.
Luego he usado solo el enlace simbólico del directorio:
Docker stopped Folder "wsl" moved to other location on disk "B" RUben@AD-RUBEN C:\Users\RUben\AppData\Local\Docker $ mklink /D wsl "B:\dev\wsl" **symbolic link** created for wsl <<===>> B:\dev\wslLos contenedores y las imágenes están listos para usar:
Una buena herramienta:
DDoSolitary/LxRunOffline: una utilidad completa para administrar el subsistema de Windows para Linux (WSL)
https://github.com/DDoSolitary/LxRunOffline
LxRunOffline.exe move Move a distribution to a new directory. Options: -n arg Name of the distribution -d arg The directory to move the distribution to.por ejemplo:
salga del escritorio docker, luego:
wsl --shutdown LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data