Limite de Memoria en Docker
Cuando creamos un nuevo contenedor, el mismo tiene acceso ilimitado a los recursos del sistema, así que si uno ocupa toda la memoria los demás contenedores serán afectados o en su defecto el sistema operativo se queda sin recursos.
Docker tiene la posibilidad de aplicar un límite de memoria a un contenedor específico.
Creando un Contenedor
1$ docker run --name dell -it debian bash
Obteniendo Información del Contenedor
1$ docker inspect dell | grep -i 'Memory'
Para "Memory": 0 el valor 0 indica que el contenedor no tiene valor limitado de memoria, es decir que utilizará todo lo que tenga disponible el host, posiblemente afectando a otros contenedores que estén dentro del mismo host.
Actualizando la Memoria del Contenedor
1$ docker update -m 256MB dell
En las pruebas existieron problemas en sistemas operativos Debian y Ubuntu:
Este problema se debe a que el cgroup no esta montado en el sistema, para que se monte editamos el archivo archivo grub.
1$ sudo vim /etc/default/grub
2 ...
3 GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"
4 GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
5 ...
Actualizamos el grub y reiniciamos el sistema:
1$ sudo update-grub
2$ sudo update-grub2
3$ sudo reboot
Por último volvemos a ejecutar el comando para actualizar la memoria y verificamos el estado de la memoria: