一.Docker资源限制介绍
官网 https://docs.docker.com/config/containers/resource_constraints/
带有内存 CPU 和GPU的运行时选项
内存、CPU 和 GPU 的运行时选项
默认情况下,容器没有资源限制,并且可以使用主机内核调度程序允许的尽可能多的给定资源。Docker 提供了控制容器可以使用多少内存或 CPU 的方法,设置docker run命令的运行时配置标志。本节提供有关何时应设置此类限制以及设置这些限制的可能影响的详细信息。
其中许多功能需要您的内核支持 Linux 功能。要检查支持,您可以使用该 docker info命令。如果您的内核中禁用了一项功能,您可能会在输出末尾看到如下警告:
WARNING: no swap limit support
docker对内存的限制
1Docker对内存限制的相关参数
Docker 可以强制执行硬内存限制,允许容器使用不超过给定数量的用户或系统内存,或软限制,允许容器根据需要使用尽可能多的内存,除非满足某些条件,例如何时内核检测到主机内存不足或争用。其中一些选项在单独使用或设置多个选项时具有不同的效果。
这些选项中的大多数采用正整数,后跟b, k, m, g, 后缀来表示字节、千字节、兆字节或千兆字节。
-m或者--memory=
容器可以使用的最大内存量 单位 k m g
则允许的最小值为6m(6 兆字节)。也就是说,您必须将该值设置为至少 6 兆字节。
2ܴ压测工具
docker pull lorel/docker-stress-ng
该工具其实就是封装了stress 命令
docker run --name mem_test -it -rm lorel/docker-stress-ng
-m N
--vm N
启动N个worker线程 一个线程是 256m
启动一个容器
##没有限制的容器
docker run --name mem_test -it lorel/docker-stress-ng --vm
##启动一个限制内存的容器
docker run --name mem_test --rm -m 300m -it lorel/docker-stress-ng --vm 2
#### 查看状态
docker stats
二 docker CPU限制
##不限制CPU的容器
docker run --name mem_test --rm -it lorel/docker-stress-ng --cpu4
##限制CPU的容器
docker run --name mem_test --rm --cpus 1 -it lorel/docker-stress-ng --cpu4
我们限制 资源不是目的,目的是我们要随时监控我们的资源,能够看到容器对宿主机资源的使用,才能更好的做资源限制,不知道资源使用的情况下,就对容器做资源限制 不然就是在作死。
三 docker自带的监控命令
docker container ps 查看正在运行的容器
docker container top 知道某个容器运行了那些进程
docker container stats 显示每个容器的资源情况