Podemos especificarle a Docker que cantidad de memoria RAM y núcleos del CPU pueden utilizar con una subsección en la parte del servicio lamada Deploy, esta especificación nos permite definir algunos requerimientos para el contexto de ejecución de nuestro contenedor/servicio, es decir cuando el contenedor ya está corriendo.
Entre las opciones que nos deja configurar esta funcionalidad está la parte de Resources que nos ayuda a manejar las restricciones de recursos físicos a los que va a tener acceso el contenedor una vez que esté en ejecución.
Entonces, adentro de la configuración de Resources tenemos dos campos que son siempre opcionales:
- Limits
- Como su nombre lo especifica, nos permite establecer un límite de memoria ram y nucleos del cpu para el contenedor
- Reservations
- También muy descriptivo, nos da la posibilidad de reservar espacio de manera exclusiva para la memoria RAM y núcleos del CPU
Ahora miremos un ejemplo concreto y sencillo:
version: '3.8'
services:
web:
build: .
volumes:
- .:/code
ports:
- "8081:80"
command: "python3 manage.py runserver 0.0.0.0:80"
deploy:
resources:
limits: #Definiendo el límite de acceso a memoria RAM y núcleos CPU
cpus: 0.50
memory: 512M
reservations: #Reservando espacio de memoria RAM y núcelos del CPU
cpus: 0.25
memory: 128M
database:
image: postgres:14.1-alpine
restart: always
environment:
POSTGRES_DB: dockerized
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
PG_SYSTEM_MAX_CONNECTIONS: 500
ports:
- '5432:5432'
volumes:
- database:/var/lib/postgresql/data
volumes:
database:
Ahora sí, con el comando stats, que nos sirve para inspeccionar en tiempo real la información de los contenedores que están en ejecución, vamos a comprobar que todo este funcionando como lo especificamos:
docker stats
Top comments (0)