【发布时间】:2019-08-08 21:03:28
【问题描述】:
我有一个资源为 8 核 / 16 GB RAM 的主机。我们使用cgroup 为我们的自定义应用程序分配CPU 和memory。我们试图在我们的自定义应用程序和 docker 之间创建一个静态分区资源。例如,我们正在尝试分配以下内容:-
4 CPU cores / 8 GB RAM --> docker
3 CPU cores / 6 GB RAM --> custom_app_1
the remaining for OS
我们已经设法为custom_app_1 执行隔离。问题是我如何为我们的容器创建默认限制内存和 cpu,而不必为单个容器使用标志 --memory 或 --cpus。我不需要限制每个容器,但我需要确保在主机中运行的所有容器不能超过 8GB RAM 和 4 个 CPU 内核的使用量,否则它将与我的 custom_app_1 争夺资源
当我执行docker stats 时,每个容器都看到 16 GB 的 RAM,我该如何配置以便它们只能看到 8 GB 的 RAM 和 4 个 CPU 内核
【问题讨论】:
-
为什么不控制 docker daemon 资源? freedesktop.org/software/systemd/man/…。我假设它会限制启动的整体容器。但我不是 100% 支持它
-
我已将
MemoryMax=1G添加到/usr/lib/systemd/system/docker.service文件中,但仍然可以看到容器占用了整个主机内存。我使用docker stats来检查内存使用情况和限制。如果有人能指导我设置cgroupfs或限制dockerd使用容器的所有内存,我将不胜感激
标签: docker