Tema:
Límites de Recursos en Docker
Introducción
Docker permite ejecutar aplicaciones en contenedores ligeros y aislados, ofreciendo eficiencia y flexibilidad. Sin embargo, cuando múltiples contenedores comparten los recursos de un solo host, es crucial gestionar y limitar el uso de CPU, memoria, I/O y otros recursos para evitar conflictos o sobrecarga del sistema.
Los límites de recursos en Docker son una característica esencial que permite controlar cuántos recursos puede consumir cada contenedor. Esto asegura un funcionamiento predecible y evita que un contenedor monopolice los recursos del sistema, afectando el rendimiento de otros servicios. Estos controles son especialmente importantes en entornos de producción y escenarios multiusuario.
Objetivo
Objetivo General:
- El objetivo de este tema es aprender a configurar límites de recursos en Docker para gestionar el uso eficiente y seguro de los recursos del sistema anfitrión.
Inicio de laboratorio
-
Ingresar al servidor qué contiene al ambiente de laboratorio con credenciales de administración
-
Descargar la imagen a utilizar
docker pull quay.io/itmlabs/api-demo -
Levantar un contenedor con la imagen
quay.io/itmlabs/api-demodocker run -it --name node -d quay.io/itmlabs/api-demo -
Inspeccione el contenedor
docker inspect node -
Verifique el proceso del contenedor en su equipo
docker inspect -f '{{.State.Pid}}' node -
Verifique los recursos disponibles para Docker
docker info -f "CPUs: {{println .NCPU}}Memory (bytes): {{.MemTotal}}" -
Elimine el contenedor
nodedocker rm -f node -
Levantar el contenedor nuevamente asignando limite de memoria por debajo de lo requerido por la aplicación
docker run -it --name node --memory="6m" -p 8080:8080 -d quay.io/itmlabs/api-demo -
Observar el estado del contenedor
docker ps -a -
Intente consumir el servicio localmente (debe fallar)
curl http://localhost:8080 -
Intente consultar los logs del contenedor
docker logs node -
Intente consultar el estado del contenedor
docker ps -a -
Elimine el contenedor
docker rm node -
Levantar el contenedor nuevamente asignando limite de memoria por encima de lo requerido por la aplicación
docker run -it --name node --memory="1g" -p 8080:8080 -d \ quay.io/itmlabs/api-demo -
Observar el estado del contenedor
docker ps -a -
Consulte los logs del contenedor
docker logs node -
Intente consumir el servicio localmente
curl http://localhost:8080 -
Consulte el estado del contenedor
docker ps -a
Limpieza de ambiente
- Detener y eliminar recursos creados
docker stop nodedocker rm nodedocker rmi quay.io/itmlabs/api-demo