Docker compose 限制docker compose v3中的资源

Docker compose 限制docker compose v3中的资源,docker-compose,Docker Compose,docker-compose.yml文件的版本3不再支持mem_限制。文档告诉我应该使用deploy.resources键,但这部分仅对swarm或docker堆栈有效 cpu_共享、cpu_配额、cpuset、mem_限制、memswap_限制:这些已被deploy下的resources键替换。请注意,部署配置仅在使用docker stack deploy时生效,docker compose会忽略它 我如何使用docker compose和yml文件的v3格式设置内存/cpu限制?我也在想同

docker-compose.yml文件的版本3不再支持mem_限制。文档告诉我应该使用
deploy.resources
键,但这部分仅对swarm或docker堆栈有效

cpu_共享、cpu_配额、cpuset、mem_限制、memswap_限制:这些已被deploy下的resources键替换。请注意,部署配置仅在使用docker stack deploy时生效,docker compose会忽略它


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

我也在想同样的问题,并发现:


简而言之,这是不可能做到的,您必须使用docker compose格式的2.1版才能指定docker compose up不忽略的限制。我找到了答案。起初,我尝试在不使用docker stack的情况下实现此功能,但没有成功

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

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

除非将应用程序部署为堆栈,否则Compose文件无法识别部署属性。

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

由于您链接的问题,开发兼容模式是为了允许v3组合文件中的v2容器资源限制功能。yaml语法与v2语法相同。请看我在这篇文章中对类似问题的回答。根据a,如果您不使用Swarm,建议使用v2.x模式而不是v3。是的,--兼容性有效。谢谢