Está en la página 1de 2

Cuando usas Docker en Windows te pregunta si quieres usar WSL como base y por default tiene un cap

de de recursos.

En algunas distribuciones, por no decir casi todas este limite es libre a menos de que por default lo
configures distinto, hay un apartado en la página de docker de como ejecutar un contenedor con
memoria máxima.

Además de la importancia de ponerle un limite a la swap que usará:

( Agrega GRUB_CMDLINE_LINUX="cdgroup_enable=memory swapaccount=1" a tu /etc/default/grub


para que el comportamiento sea similar al de Docker con WSL)

Lo anterior va a evitar que colapse todo tu sistema por, pero después esta el factor de poder usar limites
de memoria y CPU por cada contenedor, así un solo contenedor no se llevará todos los recursos, util si
estas usando mas de uno a la vez y necesitas ir moviendo la data, hay documentación en la página de
Docker:

https://docs.docker.com/config/containers/resource_constraints/

Puedes definir estos valores en swarm, compose y k8s sin problemas:

Por ejemplo:

Swarm & K8s

```

services:

service:

image: nginx

deploy:

resources:

limits:

cpus: 0.50

memory: 512M
reservations:

cpus: 0.25

memory: 128M

```

Docker Compose

```

service:

image: nginx

mem_limit: 512m

mem_reservation: 128M

cpus: 0.5

ports:

- "80:80"

```

Siempre es bueno quedarte con al menos 1gb libre y monitorear tus recursos con

docker stats / docker info o usar algun paquete 3rd party, a mi me gusta usar dive.

También podría gustarte