限制docker-compose v3中的资源

时间:2017-02-25 07:55:19

标签: docker-compose

docker-compose.yml文件的第3版不再支持mem_limit。该文档告诉我应该使用deploy.resources键,而且该部分只对swarm或docker堆栈有效。

  

cpu_shares,cpu_quota,cpuset,mem_limit,memswap_limit:这些已被deploy下的资源键所取代。请注意,部署配置仅在使用docker stack deploy时生效,并被docker-compose忽略。

... as written in the docs

如何使用yml文件的v3格式的docker-compose设置内存/ CPU限制?

3 个答案:

答案 0 :(得分:10)

我想知道同样的事情并发现了这个: https://github.com/docker/compose/issues/4513

因此,简而言之,这是不可能的,您必须使用docker-compose格式的2.1版才能指定docker-compose up

不会忽略的限制

答案 1 :(得分:0)

前一段时间我正在搜索此问题。我找到了答案here。一开始,我尝试在不使用docker stack的情况下实现此功能,但这没用。

这是您用来限制容器的CPU /内存消耗的代码段。有关其他属性,您可以搜索docker的文档。

 deploy:
  replicas: 5
  resources:
    limits: 
      cpus: "0.1"
      memory: 50M

撰写文件无法识别部署属性,除非您将应用程序部署为堆栈。

答案 2 :(得分:0)

您可以尝试使用docker-compose --compatibility up这是CLI标志,将v3文件转换为v2文件,并在可能的情况下转换部署选项。