Docker Compose资源限制

一、资源限制原因:

  1.    防止容器占用过多资源,影响其他容器或宿主机
  2. 保证容器稳定运行,避免OOM等情况.
    OOM现象:根据优先机制kill掉宿主机上最高的进程从而来释放空间,只要是宿主机的进程都可能被kill掉的。
  3. 进行资源隔离,提高安全性

二、Docker Compose资源限制

使用docker-compose文件部署PostgreSQL,并设置资源限制。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

version: '3'

services:
  primary:
    image: postgres:11-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: Admin@123
      POSTGRES_USER: iot
      POSTGRES_DB: iot
    volumes:
      - ./primary:/var/lib/postgresql/data/
    ports:
      - "5432:5432"

    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 500M
        reservations:
          cpus: '0.25'
          memory: 200M

限制指令为deploy.resources.limits这部分,注意节点位置,上面这部分限制的含义是:

        PostgreSQL服务的CPU使用被限制在最多50%的CPU能力,内存使用被限制在最多500MB。同时,这个服务至少需要25%的CPU和200MB的内存。

我们启动的时候命令需要发生一些变化,否则不会生效:

1

2

3

4

#原本的启动命令为

docker-compse up -d

# 需要添加一个参数--compatibility表示以兼容模式来运行

docker-compose --compatibility up -d

这里的关键在于添加--compatibility参数以兼容模式来运行,否则限制不会生效。

三、验证

通过上述方法限制容器CPU和内存后,再继续使用命令:docker stats查看容器资源使用情况:

可以看到PostgreSQL这个容器被成功限制为500MB内存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值