更新 docker 中现有容器的 memory/CPU 限制
Update the limitation of memory/CPU for existing container in docker
我知道我们可以像这样创建一个有内存限制的容器
docker run -ti --memory-reservation 1G ubuntu:14.04 /bin/bash
但是如何更新现有容器的 memory/CPU 限制?
目前只有 Docker 无法进行动态资源分配。您必须更新 cgroup(控制组)的 cpu/memory 份额。您必须创建一个新容器才能更改 Docker 的资源限制。
有一个 Docker GitHub issue for dynamic resource configuration. This pull request 建议它将添加到 Docker 1.10 中,使用 docker set
或 docker update
命令。此命令将允许您在运行时更新容器的配置。
如果您 运行 在启用 systemd
的系统上,您也可以利用它来更改 cpu 或内存份额。可以在 this blog post.
中找到示例
docker update --memory "1g" --cpuset-cpu "1" <RunningContainerNameOrID>
这将更新 "RunningContainerNameOrId" 以使用 1g 内存并且仅使用 cpu 核心 1
更新所有 运行 容器以使用核心 1 和 1g 内存:
docker update --cpuset-cpus "1" --memory "1g" $(docker ps | awk 'NR>1 {print }')
即使只有一个人 运行 docker 在 WSL 上,我也会节省几个小时,并且提到如果你是 运行,你需要从 .wslconfig 文件中执行此操作docker 与 wsl 集成,windows。我现在正在写它,因为如果另一个 ME 出现,现在他们知道诀窍了。
https://itnext.io/wsl2-tips-limit-cpu-memory-when-using-docker-c022535faf6f
这是一个老问题,但如果你提出并需要这个新答案,在那个平台上,至少它会让你思考。
我知道我们可以像这样创建一个有内存限制的容器
docker run -ti --memory-reservation 1G ubuntu:14.04 /bin/bash
但是如何更新现有容器的 memory/CPU 限制?
目前只有 Docker 无法进行动态资源分配。您必须更新 cgroup(控制组)的 cpu/memory 份额。您必须创建一个新容器才能更改 Docker 的资源限制。
有一个 Docker GitHub issue for dynamic resource configuration. This pull request 建议它将添加到 Docker 1.10 中,使用 docker set
或 docker update
命令。此命令将允许您在运行时更新容器的配置。
如果您 运行 在启用 systemd
的系统上,您也可以利用它来更改 cpu 或内存份额。可以在 this blog post.
docker update --memory "1g" --cpuset-cpu "1" <RunningContainerNameOrID>
这将更新 "RunningContainerNameOrId" 以使用 1g 内存并且仅使用 cpu 核心 1
更新所有 运行 容器以使用核心 1 和 1g 内存:
docker update --cpuset-cpus "1" --memory "1g" $(docker ps | awk 'NR>1 {print }')
即使只有一个人 运行 docker 在 WSL 上,我也会节省几个小时,并且提到如果你是 运行,你需要从 .wslconfig 文件中执行此操作docker 与 wsl 集成,windows。我现在正在写它,因为如果另一个 ME 出现,现在他们知道诀窍了。 https://itnext.io/wsl2-tips-limit-cpu-memory-when-using-docker-c022535faf6f
这是一个老问题,但如果你提出并需要这个新答案,在那个平台上,至少它会让你思考。