如何限制docker-compose中的内存使用?

Joh*_*abb 10 docker dockerfile docker-compose

这是我的 docker-compose.yaml 文件的一部分

version: '3.4'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    working_dir: /app
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 23M
Run Code Online (Sandbox Code Playgroud)

开始吧 docker-compose up -d

当我这样做时,docker stats它说限制仍然是 1.9GiB。我究竟做错了什么?

CONTAINER ID      NAME     CPU %     MEM USAGE / LIMIT     MEM %
13b6588evc1e      app_1    1.86%     20.45MiB / 1.952GiB   1.02%
Run Code Online (Sandbox Code Playgroud)

Raj*_*pta 7

deploy key 仅适用于 swarm 模式和 docker-compose 文件版本 3 及更高版本。

在您的情况下,请使用 docker-compose 文件版本 2 并定义资源限制:

version: "2.2"

services:
  app:
    image: foo
    cpus: "0.5"
    mem_limit: 23m
Run Code Online (Sandbox Code Playgroud)

在此处查看官方文档

  • 这也适用于版本 3,无需使用集群模式。 (5认同)