En Docker Compose, puedes limitar la memoria RAM, el espacio en disco y el uso de la CPU de los contenedores para evitar que consuman demasiados recursos en el sistema.
Aquí te dejo un tutorial para limitar la memoria RAM, el espacio en disco y la CPU de contenedores Docker Compose.
Paso 1: Crear el archivo docker-compose.yml
Primero, debes crear el archivo docker-compose.yml en el directorio raíz de tu proyecto. Este archivo define los servicios y las configuraciones para tus contenedores.
Paso 2: Definir los servicios
En el archivo docker-compose.yml, define los servicios que necesitas para tu proyecto. Por ejemplo:
version: '3' services: app: build: . image: my-app container_name: my-app restart: always
En este ejemplo, se define un servicio llamado app
.
Este servicio se construirá a partir del Dockerfile ubicado en el directorio actual (.
), se etiquetará con el nombre de la imagen my-app
, y se reiniciará siempre que falle.
Paso 3: Limitar la memoria RAM
Para limitar la memoria RAM de un contenedor, usa la opción mem_limit
. Por ejemplo:
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g
En este ejemplo, se limita la memoria RAM del contenedor a 1 GB.
Paso 4: Limitar el espacio en disco
Para limitar el espacio en disco de un contenedor, usa la opción storage_opt
. Por ejemplo:
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g storage_opt: size: 1g
En este ejemplo, se limita el espacio en disco del contenedor a 1 GB.
Paso 5: Limitar el uso de CPU
Para limitar el uso de CPU de un contenedor, usa la opción cpus
. Por ejemplo:
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g storage_opt: size: 1g cpus: 0.5
En este ejemplo, se limita el uso de CPU del contenedor al 50%.
Paso 6: Ejecutar los contenedores
Para ejecutar los contenedores con las limitaciones definidas, utiliza el siguiente comando:
docker-compose up -d
Este comando inicia todos los servicios definidos en el archivo docker-compose.yml y los ejecuta en segundo plano (-d
).
Con estos pasos ya podrás limitar la memoria RAM, el espacio en disco y el uso de CPU de tus contenedores Docker Compose.
Paso 7: Mostrar recursos utilizados
Puedes ver la cantidad de recursos que usa Docker Compose con el comando docker stats
. Este comando muestra las estadísticas en tiempo real de todos los contenedores en ejecución, incluyendo el uso de CPU, memoria y E/S.
Para utilizar docker stats
con Docker Compose, simplemente ejecuta el comando en el terminal:
docker stats
Esto mostrará las estadísticas de todos los contenedores en ejecución en el sistema. Si deseas limitar la salida a un conjunto específico de contenedores, puedes especificar los nombres de los contenedores como argumentos al comando docker stats
.
Por ejemplo, si tienes un servicio llamado «app» en tu archivo docker-compose.yml, puedes ver las estadísticas solo para ese servicio con el siguiente comando
docker stats app
También puedes usar la opción --format
para especificar el formato de salida. Por ejemplo, para mostrar solo el nombre del contenedor y el uso de memoria, puedes usar el siguiente comando:
docker stats --format "table {{.Name}}\t{{.MemUsage}}"
Esto mostrará una tabla con el nombre del contenedor y el uso de memoria para cada contenedor en ejecución.
En resumen, puedes utilizar el comando docker stats
para ver las estadísticas en tiempo real de los contenedores en ejecución, y puedes limitar la salida a un conjunto específico de contenedores con los argumentos del nombre del contenedor. También puedes usar la opción --format
para personalizar el formato de salida.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.