在docker-come.yml文件的第3版中不再支持mem_limit。文档告诉我,我应该使用deploy.resources键代替,但这部分将是有效的,只有群体或码头堆栈。
cpu_shares、cpu_quota、cpuset、mem_limit、memswap_limit:它们已被部署中的资源键所取代。请注意,部署配置仅在使用坞堆栈部署时生效,而docker -组合则忽略此配置。
. 写在文档里
如何用v3格式的yml文件设置内存/cpu限制?
发布于 2017-04-27 12:39:52
我也想知道同样的事情,然后发现了这个:https://github.com/docker/compose/issues/4513
所以简单地说,这样做是不可能的,您必须使用docker格式的2.1版本才能指定docker-compose up不忽略的限制
发布于 2019-08-26 15:41:05
您可以尝试使用docker-compose --compatibility up,它是将v3文件转换为它们的v2等效的CLI标志,并在可能的情况下翻译部署选项。
发布于 2019-01-25 06:22:14
不久前我一直在寻找这个问题。我找到了我的答案,这里。一开始,我试图实现这个功能而不使用docker堆栈,但这是行不通的。
下面是限制容器CPU/内存消耗的代码。有关其他属性,可以搜索docker的文档。
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M除非将应用程序部署为堆栈,否则撰写文件不会识别部署属性。
https://stackoverflow.com/questions/42453473
复制相似问题