|
需求:在创建 docker 容器的时候,可以通过增加 -m 参数来限制容器的内存最大占用,如果容器已经创建完成,如何动态修改和限制容器CPU、内存等资源呢?
查看容器内存限制
宿主机安装了一个 8G 的内存条,创建了3个容器,其中限制 itsvse-redis 容器最大内存使用 512M,剩下两个容器则不做限制,如下图:
输出信息格式详解
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。
Docker update 命令
该docker update命令动态更新容器配置。您可以使用此命令来防止容器从其 Docker 主机消耗过多的资源。使用单个命令,您可以对单个容器或多个容器设置限制。要指定多个容器,请提供以空格分隔的容器名称或 ID 列表。
OPTIONS 说明
名称 | 描述 | --blkio-weight | 阻塞IO (相对权重),介于10到1000之间,0表示禁用(默认禁止) | --cpu-period | 限制CPU CFS(完全公平的调度程序)期限 | --cpu-quota | 限制CPU CFS(完全公平的调度程序)配额 | --cpu-rt-period | API 1.25+,将CPU实时时间限制为微秒 | --cpu-rt-runtime | API 1.25+,将CPU实时运行时间限制为微秒 | --cpu-shares, -c | CPU份额(相对权重) | --cpus | API 1.29+,CPU数量 | --cpuset-cpus | 允许执行的CPU(0-3,0,1) | --cpuset-mem | 允许执行的MEM(0-3,0,1) | --kernel-memory | 内核内存限制 | --memory-swap | 交换限制等于内存加交换,“-1”以启用无限交换 | --memory-reservatio | 内存软限制 | --memory, -m | 内存限制 | --pids-limit | API 1.40+,调节容器pids限制(-1表示无限制) | --restart | 容器退出时重新启动策略以应用 |
文档:https://docs.docker.com/engine/reference/commandline/update/
假设限制 php5-fpm 容器最大内存使用 1024M(1G),命令如下:
(完)
|
上一篇:HTML5 之 PostMessage 跨窗口通信下一篇:【转】一句 Task.Result 就死锁, 这代码还怎么写?
|