Docker, limitar los recursos de sistema de un contenedor

Fecha publicación
#
35
Dificultad
Básico
3 more properties
Publicado
tags
i40sys, industry 4.0, industry40.systems, industrial, remote access, acceso remoto, plc, siemens, omron, ubuntu, linux, iot gateway, gateway, iot, internet of things, docker, container, ubuntu, constrains, limit, cpu, resources, ram, disk, recursos, limitaciones, limites, rangos

Descripción

A veces los procesos empiezan a consumir recursos; CPU, RAM, ancho de banda, o acceso a disco. Esto puede llegar a bloquear el ordenador por secuestro de recursos del sistema. Al correr los servicios dentro de los contenedores podemos de una forma sencilla limitar los recursos, o reservarlos, para que evitar que un proceso nos pueda bloquear el sistema.

Referencia

CLI

Bash
# 0.000 -> unlimited
docker run --memory="4m" --cpus=0.000 my-app:latest

docker-compose.yml

YAML
version: '2'
services:
  SERVICE_NAME:
    image: IMAGE_NAME
    ...
    deploy:
      resources:
        limits:
          cpus: 1
          memory: 1G
        reservations:
          cpus: '0.25'
          memory: 512M
    blkio_config:
      weight: 300
      weight_device:
        - path: /dev/sda
          weight: 400
      device_read_bps:
        - path: /dev/sdb
          rate: '12mb'
      device_read_iops:
        - path: /dev/sdb
          rate: 120
      device_write_bps:
        - path: /dev/sdb
          rate: '1024k'
      device_write_iops:
        - path: /dev/sdb
          rate: 30

Ejemplo

Plain Text
docker run --cpus=4 --rm -it progrium/stress --cpu 12