Consumo de memoria ram en Windows con Docker

Introducción

En el tiempo que utilicé Linux en una distribución Ubuntu Desktop, me agradó muchas cosas entre las que destaco su bash o consola, en el que practicamente podrías hacer todo lo que harías en una interfaz pero solo que a base de linea de comandos.

Entre tantas cosas buenas, sin duda lo que marcó un despues, fue el uso de contenedores con Docker. pero que es Docker?.

Docker es un software de codigo abierto que nos ayuda a la creacion de contenedores, eso facilita la migracion entre diferentes sistemas operativos garantizando su funcionalidad y manteniendo su estabilidad.

Funciona en base a un único sistema operativo host, que aloja todos los contenedores, los contenedores son como sistemas operativos, solo que a diferencia de las maquinas virtuales, los contenedores comparten recursos del host entre ellos, lo que resulta en la optimizacion de recursos, en otras palabras Docker aisla aplicaciones, no sistemas operativos.

Dejando la teoria de lado, resulta que quise ver si en Windows habría una alternativa de hacerlo, y desde luego que lo hay, existe una versión de Docker Desktop tanto para Windows como para Mac, solo que en Windows ocurre algo particular, y es que para hechar andar el motor de Docker, Windows usa un Hyper-V y no existe una manera inteligente de asignar recursos, por lo que si levantas un par de contenedores en un sistema Windows, no quedará mucho tiempo para que te quedes sin memoria ram.

Afortunadamente siempre hay una solución ante este tipo de problemas por lo que, en esta especie de guía les enseñaré como hacerlo.

Guía

Primero que nada necesitaras ubicarte en tu carpeta personal que esta en la ruta:

> C:\Users\{nombre de usuario}

ahora si te gusta usar comandos de Windows, podrías ejecutar (Windows+R) y escribir lo siguiente:

%userprofile%

Cualquiera de esas dos formas te llevará a tu carpeta de usuario, por lo que toca ahora es crear un archivo llamado «.wslconfig«

captura de pantalla de carpeta de usuario

Este archivo es meramente declarativo, por lo que no dañará el sistema en si, y lo que se tiene que escribir ahi es lo siguiente:

[wsl2]
memory=4GB
processors=4

En memoria asignas la cantidad en GB que quieres reservar para el motor de Docker, y el segundo obviamente el numero de nucleos con que quieres trabajar, siempre teniendo conocimiento de las caracteristicas de tu Hardware para evitar desbordamientos o cuellos de botella.

Ya casi para terminar, solo queda guardar el archivo y ejecutar un último comando para que surja efecto los cambios realizados.

Abrir el PowerShell con permisos de administrador, OJO! PowerShell y no cmd.

Una vez adentro ejecutar la siguiente linea:

Restart-Service LxssManager

Esto reiniciará la WSL2 de Windows, ahora también si quieres puedes reiniciar tu computador, y Windows no se molestará por ello.

Despues de eso, podrás ejecutar contenedores de Docker sin miedo a quedarte sin memoria, espero que sea de ayuda.

Share