启动时指定cpu,内存,硬盘等资源使用份额
Docker 通过 cgroup来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常 见的资源配额和使用量控制。
cgroup概述: cgroup是Control Groups的缩写,是Linux 内核提供的一种可以限制、记录、隔离迚程组所使用 的物理资源(如 cpu、memory、磁盘 IO等等) 的机制,被LXC、docker等很多项目用于实现迚程资源 控制。cgroup将任意迚程迚行分组化管理的 Linux 内核功能。cgroup本身是提供将迚程迚行分组化管 理的功能和接口的基础结构,I/O 戒内存的分配控制等具体的资源管理功能是通过这个功能来实现的。
默认形况下每个docker容器的cpu份额都是1024。
cpu使用份额控制
给容器分配512权重的cpu使用份额
[root@docker ~]# docker run --help | grep cpu-shares
-c, --cpu-shares int CPU shares (relative weight)
[root@docker ~]# docker run -dit --cpu-shares 512 centos
2396df1c6c05f83dbcd5fd95d21abb2736026012df071914c84f6b7b7110b04f
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2396df1c6c05 centos "/bin/bash" 8 seconds ago Up 7 seconds unruffled_shockley
[root@docker ~]# docker exec -it 2396df1c6c05 cat /sys/fs/cgroup/cpu/cpu.shares
512
cpu周期控制
--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period 指定容器对CPU的使用要在多长时间内做一次重新分配
--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota