Skip to content

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

  1. Ingresar al servidor qué contiene al ambiente de laboratorio con credenciales de administración

  2. Descargar la imagen a utilizar

    docker pull quay.io/itmlabs/api-demo
    

  3. Levantar un contenedor con la imagen quay.io/itmlabs/api-demo

    docker run -it --name node -d quay.io/itmlabs/api-demo
    

  4. Inspeccione el contenedor

    docker inspect node
    

  5. Verifique el proceso del contenedor en su equipo

    docker inspect -f '{{.State.Pid}}' node
    

  6. Verifique los recursos disponibles para Docker

    docker info -f "CPUs: {{println .NCPU}}Memory (bytes): {{.MemTotal}}"
    

  7. Elimine el contenedor node

    docker rm -f node
    

  8. 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
    

  9. Observar el estado del contenedor

    docker ps -a
    

  10. Intente consumir el servicio localmente (debe fallar)

    curl http://localhost:8080
    

  11. Intente consultar los logs del contenedor

    docker logs node
    

  12. Intente consultar el estado del contenedor

    docker ps -a
    

  13. Elimine el contenedor

    docker rm node
    

  14. 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
    

  15. Observar el estado del contenedor

    docker ps -a
    

  16. Consulte los logs del contenedor

    docker logs node
    

  17. Intente consumir el servicio localmente

    curl http://localhost:8080
    

  18. Consulte el estado del contenedor

    docker ps -a
    

Limpieza de ambiente

  1. Detener y eliminar recursos creados
    docker stop node
    
    docker rm node
    
    docker rmi quay.io/itmlabs/api-demo