docker容器的资源配额控制

docker 通过cgroup来控制容器的资源配额,其中包括CPU、内存、磁盘。
cgroup 是control groups 的缩写,是linux内核提供的一种可以限制、记录、隔离进程所使用的物理资源。cgroup本身是提供将将进程进行分组化管理的功能和接口的基础结构,I/O或者内存的分配控制等具体的资源管理功能。
为什么要进行硬件配额?
当多个容器运行时,防止某个容器把所有的硬件都占用。

1.CPU控制

指定容器可以使用的CPU份额

docker run -c,--cpu-shares  n
docker run -it --cpu-share 512 centos bash

cpu shares 指在容器使用CPU的份额值。是一个弹性的加权值。默认值是1024。
这里的弹性指,当我们有两个CPU,A的份额为1000,B的是500.如果AB都正常运行,则A获得CPU时间片会比B多,优先级更高。如果A空间,B运行,即使B的CPU份额小,也会独占整个CPU资源。
cgroup只有在多个容器争夺一个CPU资源的时候才会生效。
CPU core 核心控制
对于多核CPU的服务器,docker可以控制容器限定在哪些CPU内核和内存节点,分别使用–cup。set-cups和–cupset-mems参数
现在又八个核心,创建的容器只能在0,1两个核心上运行

docker run -it --name mycentos --cpuset-cpus 0-1 centos bash 
限制容器只能在cpu的0,1核上运行

cpu配额控制混合使用
cpu-shares控制份额,cpuset-cpus 指定使用哪个核心。

2.内存控制

限制内存的使用量
-m,-memory=’ ’ 限制容器内存的使用量

docker run -it -m 128m centos bash
限制该容器只能使用128M的内存

3.容器的I/O控制

–device-write-bps value 限制容器写的速度 单位kb,mb,gb
–device-read-bps value 限制容器读的速度 单位kb,mb,gb

4.docker 数据映射

语法

docker run -itd --name centos -v /src:/dst centos bash
将容器的/dst目录 映射到物理机的/src的目录

-v 指定挂载的目录,:前是物理主机的本地目录,:后是容器的目录
使用数据映射最大的好处是,当docker坏了,数据还在物理机上。重新运行加载容器,可以重新读取数据,保证数据不丢失。

5.容器的端口映射

在这里插入图片描述
docker容器默认的ip地址都是127.0.0.1,如果要从外网访问物理机中的容器,则需要进行端口映射,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。
两种方式的区别是:

-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。

docker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py

默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。
还可以可以通过访问 127.0.0.1:5001 来访问容器的 5000 端口。

 docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

查看端口的绑定情况

docker port adoring_stonebraker 5000
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值