1、创建一个临时容器c1docker run -it --namec1 --rm centos:v1监控容器的资源使用情况docker statsmemload工具可以直接占用消耗资源将memload工具拷贝到c1容器的opt目录下docker cp memload-7.0-1.r29766.x86_64.rpm c1:/opt在运行的容器中安装上传的安装包rpm -ivh /opt/memload-7.0-1.r29766.x86_64.rpmmemload 1024 #执行命令使得容器消耗1024M内存此时查看容器的内存消耗已经消耗了1GBdocker stats结束memload 1024 命令就会释放内存资源如果不对容器的资源使用做限制则容器能使用主机的所有资源利用cgroup来实现容器资源限制cgroup是linux内核自带的拉取一个容器并指定他所能使用的内存大小 -m指定内存大小docker run -it --namec1 --rm -m 512m centos:v1 #创建一个容器并指定内存可使用的内存大小为512m查看docker中cgroup属性docker info |grep -i cgroup将memload工具拷贝到容器中docker cp memload-7.0-1.r29766.x86_64.rpm c1:/opt查看容器的资源使用情况,容器最大资源使用为512M内存docker stats在容器中安装memload工具rpm -ivh /opt/memload-7.0-1.r29766.x86_64.rpmmemload 1024 #执行命令消耗1024M内存会报错因为最多使用512M内存memload 200 #消耗200m内存就能成功!](https://i-blog.csdnimg.cn/direct/cca642f76c9e47d8b1887c6fd3578596.png)对cpu限制创建一个临时容器并在容器中启动几个cat进程docker run -it --namec1 --rm centos:v1cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null 在宿主机中查看cat进程并查看每个cat进程运行于那个cpu(宿主机cpu为2核)ps aux |grep -v grep | grep cat #查看cat进程ps mo pid,comm,psr $(pgrep cat) #并查看每个cat进程属于哪个cpu关闭临时容器并重新创建一个容器并指定容器运行在哪个cpudocker run -it --namec1 --rm --cpuset-cpus0 centos:v1 #创建一个临时容器并指定容器运行在cpu0上面cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null 再次查看宿主机的cat进程可以看到进程都运行在cpu0上面ps aux |grep -v grep | grep cat #查看cat进程ps mo pid,comm,psr $(pgrep cat) #并查看每个cat进程属于哪个cpu容器运行在多个cpu上面docker run -it --namec1 --rm --cpuset-cpus0-3,5 centos:v1 #创建一个容器并指定容器进程运行在cpu0-35上面cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null cat /dev/zero /dev/null 在宿主机上面查看cat进程发现占用cpu0-35不会占用其他的cpu宿主机cpu为8C