【问题标题】:Limit resources in docker-compose v3在 docker-compose v3 中限制资源
【发布时间】:2017-07-16 03:52:00
【问题描述】:
docker-compose.yml 文件的版本 3 不再支持

mem_limit。文档告诉我应该改用 deploy.resources 键,而且这部分只对 swarm 或 docker stack 有效。

cpu_shares、cpu_quota、cpuset、mem_limit、memswap_limit:这些已被部署下的资源键替换。注意,deploy 配置只在使用 docker stack deploy 时生效,被 docker-compose 忽略。

...as written in the docs.

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

【问题讨论】:

    标签: docker-compose


    【解决方案1】:

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

    简而言之,这是不可能的,您必须使用 docker-compose 格式的 2.1 版本才能指定 docker-compose up 不会忽略的限制

    【讨论】:

    • 由于您链接的问题,开发了兼容模式以允许 v3 撰写文件中的 v2 容器资源限制能力。 yaml 语法与 v2 语法相同。在thread 中查看我对类似问题的回答。
    【解决方案2】:

    您可以尝试docker-compose --compatibility up,它是 CLI 标志,可将 v3 文件转换为等效的 v2,并尽可能翻译部署选项。

    【讨论】:

    【解决方案3】:

    我不久前正在搜索这个问题。我找到了我的答案here。起初,我尝试在不使用 docker stack 的情况下实现此功能,但没有成功。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2017-07-16
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多