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,
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: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 archivodocker-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 de0
. 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
:Ten en cuenta que esto evitará que el contenedor utilice más recursos de los especificados, pero también puede limitar su rendimiento.