【问题标题】:Limit container resources on Ubuntu限制 Ubuntu 上的容器资源
【发布时间】:2020-10-29 14:08:46
【问题描述】:

我正在开发一个项目,该项目同时运行一个包含 4 个进程的容器。我的计算机没有足够的内存和 CPU 来运行所有这些。所以我发现自己需要限制每个进程使用的资源。 当我运行docker stats 时,我得到以下输出:

如您所见,所有进程的内存上限设置为 7.628 Gib,这是我的计算机中的所有内存,在我截取屏幕截图时 CPU 很低,但在我使用我的应用程序时它会达到峰值。

我目前在我的 bash 中使用别名和以下命令来限制单个容器的资源:

docker update --memory-swap=-1 --cpus=2 --memory 4g

所以每次我运行docker-compose up 的时候,我都得一一限制每个容器的资源,这真的很烦人。 我的问题是:有没有办法让它在系统范围内运行一次,以便我在本地机器上运行的所有容器都以相同的资源限制运行?或者,是否有一个命令可以一次将这些限制应用于所有容器?

我正在使用 Ubuntu 20

我提前感谢任何帮助。

【问题讨论】:

    标签: linux docker docker-compose dockerfile


    【解决方案1】:

    Compose file version 2 在每个服务规范中支持这些。

    version: '2.4'
    services:
      queue:
        cpu_count: 2
        mem_limit: 4g
        memswap_limit: 4g # -1 doesn't seem to be valid
    

    一般来说,版本 2 有更多的 docker run 选项,而版本 3 更适合 Swarm 特定的选项。版本 3 的等效项是 deploy: resources: section,但 deploy: 下的所有内容都会被 docker-compose up 忽略。两个版本都受支持,如果需要,可以使用版本 2 Compose 文件。

    【讨论】:

      猜你喜欢
      • 2021-03-29
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多