社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

如何限制一组Docker容器的内存资源?

user3397467 • 4 年前 • 356 次点击  

我知道我可以用 --memory --memory-swap 限制每个容器的内存资源。但是,如何限制每个容器组的内存资源?

我的系统有8GB内存,由2个Docker容器组成。我想对两个容器都设置8GB的限制。我不想将每个容器的4GB内存资源限制设置为

  1. 容器可能使用超过4GB的内存。
  2. 两个容器不会同时使用4GB内存,因此将容器A的未使用内存赋予容器B是有意义的。

我试过的东西

  1. docker容器的默认父cgroup是“docker”。Docker”是我的容器的父组。我试图设置父组的限制

    echo 800000000>/sys/fs/cgroup/memory/docker/memory.limit_字节

  2. 我检查了父cgroup“docker”的内存使用情况,但它是0,不等于它的子级内存使用情况之和。

    cat/sys/fs/cgroup/memory/docker/memory.usage以字节为单位返回0

谢谢你的帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38025
 
356 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Gabbax0r
Reply   •   1 楼
Gabbax0r    5 年前

我认为有两种方法可以解决你的问题。

您可以尝试增加每个容器或组合本身的内存使用量。

就像你提到的,你可以在你的撰写选项中传递每个dockerfile。 --内存 --内存交换 .

在docker-compose.yml文件中,可以设置选项/参数以限制或增加资源。

例如。:

version: '3'
services:
  redis:
    image: redis:alpine
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 50M
        reservations:
          cpus: '0.25'
          memory: 20M

您可以为每个要组合的容器执行此操作。

文档: https://docs.docker.com/compose/compose-file/#resources