2
respostas

docker compose limite memória e cpu

Olá tenho o seguinte comando:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=MinhaSenha@' -e 'MSSQL_PID=Enterprise' -v /celta/mssql/data:/var/opt/mssql -p 1401:1433 --name sql3 -m 2G -d mcr.microsoft.com/mssql/server

Funciona corretamente, cria um conteiner MS Sql enterprise, volume persistente e limite de memória a 2GB. Porém quando tento criar um arquivo compose para subir automaticamente não consigo limitar, pelo que pesquisei na documentação a versão 3 parece não ter mais suporte para limitar quantidade de memória e cpu. Alguém tem alguma solução para esse cenário?

2 respostas

Alberto, dando uma lida na documentação da versão 3, no tópico Resources, é possível sim limitar cpu e memória, e além disso reservar:

version: '3'
services:
  redis:
    image: redis:alpine
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 50M
        reservations:
          cpus: '0.25'
          memory: 20M

Então eu fiz esta configuração, porém o compose retorna um warning que esta ignorando esta configuração e me força a utilizar modo swarm, e subir meus conteiner de forma diferente.

Segue o warning:

WARNING: Some services (mssql-teste, mysql-1, mysql-2, mysql-3, mssql3) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.

Consegui subir os conteiner através deste comando porém não entendi sua ligação com docker:

docker stack deploy --compose-file docker-compose.yml dbases