Ir al contenido principal

Instalaste Docker y se come espacio en tu disco

Básicamente este post traduce la ayuda que vi en la siguiente página:

https://stackoverflow.com/questions/62441307/how-can-i-change-the-location-of-docker-images-when-using-docker-desktop-on-wsl2

Entonces, la instalación que hice en mi máquina fue la siguiente:

  1. Activar Virtualización en el BIOS
  2. Instalar Docker
  3. Elegir que el motor linux se manejará con WSL2
En este caso tenemos dos cosas a tomar en cuenta:
  1. El archivo de SWAP que utiliza docker para los contenedores
  2. El archivo donde se guardan todas las imágenes.
En ambos casos el lugar de los archivos que se usan están en la carpeta del usuario. A veces este lugar puede crecer mucho y nos quedamos sin espacio en disco.

Liberando el SWAP de docker

Primeramente vamos a parar el servicio de docker. Luego, En la carpeta del usuario se encuentra un archivo llamado .wslconfig. Solamente se lo debe editar y cambiar la línea
# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
swapfile=E:\\temp\\wsl-swap.vhdx

Cambiando el lugar donde están las imágenes

Este proceso es un poco más delicado y se debe hacer con más cuidado. Lo primero que haremos será parar docker completamente. Podemos verificar que todo está parado de la siguiente manera desde la línea de comando (cmd)

wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

Luego de ese comando wsl la respuesta debería indicar que los dos servicios están parados.
Ahora tenemos que exportar el archivo que ocupa mucho campo a un formato que podamos mover, como por ejemplo tar. La preparación de ese archivo implica usar la herramienta wsl otra vez

wsl --export docker-desktop-data "E:\Docker\wsl\data\docker-desktop-data.tar"

Anulamos el registro actual que tenemos de la data de docker-desktop. 

wsl --unregister docker-desktop-data

Restauramos el docker-desktop-data pero se le indica otra ruta

wsl --import docker-desktop-data "E:\Docker\wsl\data" "E:\Docker\wsl\data\docker-desktop-data.tar" --version 2

No es mala idea en este punto apagar la máquina. Comenzamos nuestro host docker y vemos que todo esté funcionando bien.
Finalmente, podemos eliminar el archivo .tar si estamos satisfechos.

Comentarios

Entradas más populares de este blog

Protocolos, qué son?

 En el pasado (y en el presente también) siempre he querido incluir en el contenido de la materia de estructura de datos la posibilidad de hacer un práctico que tenga que ver con redes. Este breve artículo trata de cómo se pueden conectar dos computadoras en red y de las bases por las cuales tenemos protocolos. Veremos: Significado de las direcciones IP y conceptos muy básicos de redes Cómo usar sockets para abrir canales de comnicación entre dos computadoras Concepto de un protocolo y de cómo podemos usar uno para hacer un chat básico Conceptos básicos de redes Si eres de sistemas o te interesan las computadoras pues probablemnte el concepto de conectar dos computadoras en la red parece algo tan sencillo como respirar. Sin embargo, hasta mediados de los 90 era algo que: 1) era complejo; 2) tenía atisbos de magia negra. Por suerte con el tiempo esto se ha ido masificando y ahora es algo muy sencillo. Para poder conectarnos con otra computadora debemos conocer la dirección y el puerto d

Nuget muy grande en tu carpeta personal

Problema : Veo que mi disco duro C ha crecido bastante y necesito espacio. Cuando veo que una carpeta .nuget dentro de mi cuenta de usuario tiene 15 GB. Solución : Esa carpeta existe como cache para que VS no busque el paquete cada vez desde la web. Entonces, la solución consiste en los siguientes pasos. Listar cuales son los folders o contenedores de estos paquetes nuget dotnet nuget locals all --list http-cache: <USER>\AppData\Local\NuGet\v3-cache global-packages: <USER>\.nuget\packages\ temp: <USER>\AppData\Local\Temp\NuGetScratch plugins-cache: <USER>\AppData\Local\NuGet\plugins-cache Limpiar las direcciones que tienen estos paquetes nuget con el utilitario de nuget dotnet nuget locals http-cache --clear Clearing NuGet HTTP cache: C:\Users\Vladimir\AppData\Local\NuGet\v3-cache Local resources cleared. y así para cada uno de los locals que se ve en la lista anterior. Luego se debe cambiar las variables de entorno para que esto no nos vuelva a pasar. Como se