更新docker中现有容器的内存/ CPU限制

我知道我们可以像这样创build一个内存限制的容器

docker run -ti --memory-reservation 1G ubuntu:14.04 /bin/bash 

但如何更新现有容器的内存/ CPU的限制?

Docker更新命令

 docker update --memory "1g" --cpuset-cpu "1" <RunningContainerNameOrID> 

这将更新“RunningContainerNameOrId”以使用1g的内存,并且只使用cpu核心1

更新所有正在运行的容器以使用核心1和1g内存:

 docker update --cpuset-cpus "1" --memory "1g" $(dzdo docker ps | awk 'NR>1 {print $1}') 

dynamic资源分配目前仅限于Docker。 你将不得不更新cgroup(控制组)的CPU /内存份额。 你必须创build一个新的容器来改变Docker的资源限制。

有一个Docker GitHub问题的dynamic资源configuration。 这个拉取请求表明,它将被添加到docker setdocker update命令docker set 1.10。 该命令将允许您在运行时更新容器的configuration。

如果您在启用了systemd系统上运行,那么也可以利用它来更改cpu或内存份额。 一个例子可以在这篇博客文章中find。