docker系列之(五)容器资源限制

默认创建的容器使用宿主机的所有资源,这样会因为某些容器资源要求过大,导致其他容器异常,所以需要进行容器的资源限制。主要对内存和cpu限制

1、-m 容器可以使用最大内存量

shell>docker run -d -m="512m" --name nginx3 -h web2 --restart=always nginx
docker、技术与框架、新兴技术能力docker系列之(五)容器资源限制插图

2、–memory-swap允许交换到磁盘的内存量

shell>docker run -d -m=”200m” –memory-swap=”205m” –name nginx3 -h web2 –restart=always nginx

使用了swap会使磁盘变慢 。注意: memory-swap设置的值必须比-m大

docker、技术与框架、新兴技术能力docker系列之(五)容器资源限制插图1

3、-memory-swappiness=<0-100>容器使用SWAP分区交换的百分比(0-100,默认是-1)

-1即不使用。使用了swap会使磁盘变慢

4、-oom-kill-disable 禁用OOM Killer

linux当出现内容溢出时,会找到最大使用内容的应用给kill。可以通过禁用oom-kill使其不执行

shell>docker run -d -m=”200m” –memory-swap=”205m” –name nginx3 -h web2 –oom-kill-disable –restart=always nginx

5、–cpus可以使用的CUP数量

---最多使用1.5个核
shell>docker run -d --name nginx4 --cpus="1.5" nginx
---最多使用50%的cpu
shell>docker run -d --name nginx4 --cpus=".5" nginx

6、-cpuset-cpus 限制容器使用特定的Cpu核心,如(0-3,0,1)

7、-cpu-shares CPU共享(相对权重)

8、 update 资源扩容

[root@docker ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS                                   NAMES
1b962ae1d6a5   nginx     "/docker-entrypoint.…"   2 hours ago   Up 2 hours   0.0.0.0:8888->80/tcp, :::8888->80/tcp   nginx2
[root@docker ~]# docker update --cpus=".5" 1b962ae1d6a5

下面开始讲解关于容器的相关命令

http://www.fcors.com/%e6%8a%80%e6%9c%af%e4%b8%8e%e6%a1%86%e6%9e%b6/docker%e7%b3%bb%e5%88%97%e4%b9%8b%ef%bc%88%e5%85%ad%ef%bc%89%e7%ae%a1%e7%90%86%e5%ae%b9%e5%99%a8%e7%9a%84%e7%9b%b8%e5%85%b3%e5%91%bd%e4%bb%a4/