zoukankan      html  css  js  c++  java
  • Docker 安全策略之 Cgroup

    Cgroup用于限制容器对CPU、内存等关键资源的使用,防止某个容器独占消耗超过安全阈值的宿主机资源。

    1,限制CPU

            Docker 能够指定一个容器的CPU相对执行权重,每个容器默认权重为1024。假设AB两个容器同时运行在一个宿主机上,A容器权重为1024,B容器权重为512,那么他们的资源分配率分别为66.6%和33.3%,但是如果B容器完全空闲,则A容器可以使用使用属于B容器的CPU资源。

            例如,可以设置容器CPU权重为100,如下:         

    $ docker run --rm -it -c 100 ubuntu /bin/bash

            另一方面,也可以设置容器对CPU资源的使用上限,每个0.5秒,只允许该ubuntu 容器运行0.25秒。如下:

    $ docker run --rm -it --cpu-period=500000 --cpu-quota=250000 ubuntu /bin/bash

    2,限制内存

          一般来说,生产环境必须限制容器的内存使用量。命令如下:

    $ docker run --rm -it -m 200M ubuntu /bin/bash

          这个例子可将该容器可使用的内存限制在200MB,不过因为Linux 的内存机制特性,当内存不足时会将部分内存置换到swap分区里,因此如果只限制内存使用量,可能会导致swap分区被用过。此时,可通过--memory-swap参数限制容器对swap分区的使用。如果只是指定-m 而不指定 --memroy-swap,那么总的虚拟内存大小(虚拟内存=内存+swap大小)是-m参数的两倍

    3,限制块设备I/O

          Docker 能设置容器的I/O权重,还允许你直接限制磁盘的读写速率,对应的参数有:

          --device-read-bps:磁盘每秒最多可以读多少比特(bytes)

          --device-write-bps:磁盘每秒最多可以写多少比特(bytes)

    参考资料:

    1,《Docker进阶与实战》

    2,https://www.sohu.com/a/165506573_609513

  • 相关阅读:
    20180710
    20180709
    20180706
    20180705
    20180704
    python3.x 函数的参数
    python函数返回值
    Centos7下命令笔记-ls
    CentOS系统内核、操作系统位数以及系统参数查看
    CentOS7 配置光盘iso镜像为本地yum源
  • 原文地址:https://www.cnblogs.com/chuyuan/p/12197446.html
Copyright © 2011-2022 走看看