Moviendo la máquina Linux de Docker CE for Windows
05 Mar 2019 · 2 mins.Cuando tenemos instalado Docker CE for Windows y configurado para imágenes linux, en realidad tenemos una máquina HyperV con una distro de linux ejecutándose y que hace de intermediaria para que todo parezca que funciona como si de magia negra se tratase. Pero, ¿qué pasa cuando te vas quedando sin espacio según vas descargando más y más imágenes docker?
La solución no pasa por configuraciones en ficheros json de docker, olvídate de eso, lo más simple es mover el disco virtual usado por HyperV para ejecutar la distro de Linux hacia otra partición donde tengas más espacio. Ese disco virtual es un fichero que se llama MobyLinuxVM.vhdx.
¿Dónde está MobyLinuxVM.vhdx?
Puedes averiguar la ruta del fichero que hace uso Docker desde el HyperV Manager:
-
Selecciona la máquina MobyLinuxVM.
-
Entra en Settings.
-
Selecciona HardDrive MobyLinuxVM.hdx.
-
Verás la ruta en la sección Virtual hard disk.
Probablemente sea:C:\Users\Public\Documents\Hyper-V\Virtual hard disks
Moviendo vhd y configurando Link
-
Lo primero, hay que parar Docker Desktop antes de continuar.
-
Ahora que ya tienes localizado el fichero vhdx, muévelo a tu nueva ruta, por ejemplo,
D:\HyperV-disks\MobyLinuxVM.vhdx
-
Elimina la carpeta
Virtual hard disks
de la rutaC:\Users\Public\Documents\Hyper-V\
- Abre una consola en modo administrador y ejecutas:
mklink /J "C:\Users\Public\Documents\Hyper-V\Virtual hard disks" "D:\HyperV-disks"
- Inicia Docker Desktop.
Docker debería ser iniciado sin problema. Vamos a comprobar los cambios descargandonos una imagen, por ejemplo:
docker pull microsoft/azure-cli:2.0.59
Si observamos el fichero D:\HyperV-disks\MobyLinuxVM.vhdx
veremos que está modificándose conforme la descarga avanza.
Y así sin desinstalar Docker ni hacer raras configuraciones optimizamos nuestro espacio en disco.
Happy coding!
David.
Bonus
Si quieres hacer búsquedas de ficheros en windows, te recomiendo usar el programa Search Everything , útil, rápido y gratis. Aunque puedes dejar una donación ;-)