es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Docker inspect mostrando memoria y nanocpus como 0.

He implementado un contenedor utilizando el comando docker stack deploy.

El servicio se despliega correctamente y el contenedor también está en ejecución.

He especificado algunas restricciones de reserva de recursos de la siguiente manera:

      deploy:
        mode: replicated
        replicas: 1
        resources:
          reservations:
            cpus: '0.25'
            memory: 512M
        restart_policy:
          condition: on-failure
          max_attempts: 3

Pero cuando intento verificar los recursos de memoria y CPU asignados, el comando docker inspect container_name muestra 0 como sus valores.

"Memory": 0,
"NanoCpus": 0,
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Pregunta: He desplegado un contenedor usando el comando docker stack deploy. El servicio se despliega correctamente y también se está ejecutando el contenedor. He especificado algunas restricciones de reserva de recursos de la siguiente manera:

    deploy:
      mode: replicated
      replicas: 1
      resources:
        reservations:
          cpus: '0.25'
          memory: 512M
      restart_policy:
        condition: on-failure
        max_attempts: 3
    

    Pero cuando intento verificar los recursos de memoria y CPU asignados, el comando docker inspect container_name muestra 0 como sus valores. ¿Cuál podría ser la razón de este problema?

    Respuesta:

    Cuando utilizas el comando docker stack deploy para desplegar un servicio, las restricciones de reserva de recursos definidas en el archivo docker-compose.yml son simplemente las solicitudes realizadas al administrador de enjambres (swarm manager). El administrador de enjambres utilizará estas solicitudes como indicaciones para reservar la cantidad mínima de recursos para los servicios. Sin embargo, estas no son límites estrictos en los recursos del contenedor.

    Por lo tanto, cuando utilizas el comando docker inspect para verificar los recursos de memoria y CPU asignados al contenedor, es posible que veas un valor de 0. Esto se debe a que el contenedor se ha iniciado sin restricciones definidas.

    Para confirmar que el contenedor está utilizando los recursos asignados, utiliza el comando docker stats container_name. Este mostrará estadísticas en vivo del uso de recursos para el contenedor especificado.

    Si deseas imponer límites estrictos en los recursos de un contenedor desde el principio, puedes utilizar la siguiente sintaxis en el archivo docker-compose.yml:

    deploy:
      mode: replicated
      replicas: 1
      resources:
        limits:
          cpus: '0.25'
          memory: 512M
      restart_policy:
        condition: on-failure
        max_attempts: 3
    

    Ten en cuenta que esto evitará que el contenedor utilice más recursos de los especificados, pero también puede limitar su rendimiento.

Comments are closed.