如何在 docker compose 版本 3 中指定内存和 CPU 限制

新手上路,请多包涵

我无法为版本 3 中指定的服务指定 CPU 和内存限制。

对于版本 2,它可以与服务下的 mem_limitcpu_shares 参数一起正常工作。但是在使用版本 3 时它失败了,除非我使用 swarm 模式,否则将它们放在 deploy 部分似乎不值得。

有人可以帮忙吗?

     version: "3"
    services:
      node:
        build:
         context: .
          dockerfile: ./docker-build/Dockerfile.node
        restart: always
        environment:
          - VIRTUAL_HOST=localhost
        volumes:
          - logs:/app/out/
        expose:
          - 8083
        command: ["npm","start"]
        cap_drop:
          - NET_ADMIN
          - SYS_ADMIN

原文由 vivekyad4v 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

我知道这个话题有点老了,而且看起来很陈旧,但无论如何我都可以使用这些选项:

 deploy:
  resources:
    limits:
      cpus: '0.001'
      memory: 50M

使用 3.7 版本的 docker-compose 时

对我来说有帮助的是使用以下命令:

docker-compose --compatibility up

--compatibility 标志代表(取自文档):

如果设置,Compose 将尝试将 v3 文件中的部署密钥转换为它们的非 Swarm 等效项

认为这很棒,我不必将我的 docker-compose 文件恢复到 v2。

原文由 Rigi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进