我想知道是否有办法限制或限制 docker 容器在主机级别使用的最大内存和处理能力。我的印象是内存选项仅在容器启动时添加提供的内存,但不会永久限制它。
当我将容器与 dotnet 应用程序(托管的 dll)、mono'd/wine'd exes、java 应用程序和 linux 守护进程一起使用时,如果我能确保,例如,继续 java 内存分配不会使其他容器,那就太好了碰撞。我现在正在为这些容器使用 java 内存选项(xms、xmx),并且与其他容器类似。我缺少一个基于 docker 的系统来管理和监控 cpu 和内存。此外,内存和 CPU 的百分比缩放将很有用,允许一个容器在高峰时刻获取大量处理能力和内存。我可以在主机进程级别而不是在 docker 级别监控它。
我什至还没有谈论多主机设置(swarm、rancher、kubernetes)。或者我的问题是一般?
docker run 命令包括限制内存和 cpu的选项,特别是-c和-m选项。
使用 compose 文件和 swarm 模式(可以是单节点 swarm 集群),这些配置为每个服务的资源部分:
version: '3'
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
Run Code Online (Sandbox Code Playgroud)
对于 docker-compose 支持,您可以使用版本 2 语法获得类似的结果:
version: '2.2'
services:
test:
image: busybox:latest
command: tail -f /dev/null
cpus: '0.50'
mem_limit: '50M'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8173 次 |
| 最近记录: |