57

docker-compose 支持 mem_limit 吗?我该如何测试它?

我有以下docker-compose.yml

repository:
  image: myregistry/my_nginx_image
  mem_limit: 60m
  volumes:
    - /etc/localtime:/etc/localtime
  ports:
    - "80:80"

如何证明容器实际上不超过 60 mb 的 RAM?

我在用:

  • 码头工人 1.3.1
  • 码头工人撰写 1.1.0
4

4 回答 4

65

是的。docker-compose 支持内存限制,并且可以按照您的示例设置值,用“m”表示兆字节。

可以使用“docker stats”命令检查运行 Docker 容器的内存限制是多少。

如果您的容器名称是“repository_1”,则使用以下命令:

docker stats repository_1

这样做的结果将与此类似:

CONTAINER       CPU %    MEM USAGE/LIMIT    MEM %     NET I/O
repository_1    1.93%    4.609 MiB/60 MiB   7.20%     1.832 KiB/648 B
于 2015-04-02T21:26:24.670 回答
9

根据文档,简单

mem_limit: 1000000000

应该足够了。我想,您应该删除“m”,并使用字节而不是兆字节。

于 2015-03-03T18:18:46.953 回答
1

您可以在去年写的这篇文章中找到如何配置 docker 以限制资源(CPU 和内存)以及如何测试您的限制:resource-management-in-docker

于 2015-03-04T17:00:18.967 回答
0

如果您使用 docker compose v3 而不是:

mem_limit: 60m

您需要在deploy部分中指定内存限制:

deploy:
  resources:
    limits:
      memory: 60m

此处描述了此更改:https ://docs.docker.com/compose/compose-file/compose-versioning/#version-2x-to-3x

于 2021-12-23T16:48:17.350 回答