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

时间:2016-01-07 12:04:36

标签: memory docker containers

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

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

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

2 个答案:

答案 0 :(得分:11)

Docker Update Command

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 issueThis pull request表示它将在Docker 1.10中添加docker setdocker update命令。此命令将允许您在运行时更新容器的配置。

如果您在启用了systemd的系统上运行,您也可以利用它来更改cpu或内存共享。可以在this blog post中找到一个示例。