Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Limitar la memoria RAM, CPU o espacio en disco para los contenedores Docker usando Docker Compose

Tiempo de lectura: 3 minutos

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
version: '3'
services:
app:
build: .
image: my-app
container_name: my-app
restart: always
version: '3' services: app: build: . image: my-app container_name: my-app restart: always
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
version: '3'
services:
app:
build: .
image: my-app
container_name: my-app
restart: always
mem_limit: 1g
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
version: '3'
services:
app:
build: .
image: my-app
container_name: my-app
restart: always
mem_limit: 1g
storage_opt:
size: 1g
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g storage_opt: size: 1g
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
version: '3'
services:
app:
build: .
image: my-app
container_name: my-app
restart: always
mem_limit: 1g
storage_opt:
size: 1g
cpus: 0.5
version: '3' services: app: build: . image: my-app container_name: my-app restart: always mem_limit: 1g storage_opt: size: 1g cpus: 0.5
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker-compose up -d
docker-compose up -d
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker stats
docker stats
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker stats app
docker stats app
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker stats --format "table {{.Name}}\t{{.MemUsage}}"
docker stats --format "table {{.Name}}\t{{.MemUsage}}"
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.

2

Deja un comentario