我知道我们可以像这样创建一个具有内存限制的容器
docker run -ti --memory-reservation 1G ubuntu:14.04 /bin/bash
但如何更新现有容器的内存/ CPU限制?
答案 0 :(得分:11)
docker update --memory "1g" --cpuset-cpu "1" <RunningContainerNameOrID>
这将更新“RunningContainerNameOrId”以使用1g内存并仅使用cpu core 1
要将所有正在运行的容器更新为使用核心1和1g内存:
docker update --cpuset-cpus "1" --memory "1g" $(docker ps | awk 'NR>1 {print $1}')
答案 1 :(得分:2)
目前只有Docker才能进行动态资源分配。您必须更新cgroup(控制组)的cpu / memory份额。您必须创建一个新容器来更改Docker的资源限制。
动态资源配置有Docker GitHub issue。 This pull request表示它将在Docker 1.10中添加docker set
或docker update
命令。此命令将允许您在运行时更新容器的配置。
如果您在启用了systemd
的系统上运行,您也可以利用它来更改cpu或内存共享。可以在this blog post中找到一个示例。