如何在运行时更改docker容器的内存和cpu限制?我的意思是,当容器运行时,我想更改内存限制,例如
Thanks in advance
您不能在运行的容器内更改,您必须在您的主机上更改。
如何在主机上做到这一点取决于您的主机操作系统,在Linux上,我建议看一下cgroups,这是docker内部限制容器的方式。
在ubuntu上,您可以使用 cgm(在ubuntu 15.04上尝试过)。
- 为cpu创建一个新的cgroup,将进程(例如28433)移动到其中,并设置一个值
> # cgm create cpu dudecpu > # cgm movepid cpu dudecpu 28433 > # cgm setvalue cpu dudecpu cpu.shares 512
- 为内存创建一个新的c组,将进程(例如28433)移动到它,并设置一个值
- 检查你的新cgroups在哪里,并查看这些目录,你会在那里找到cgroup的所有属性。
> cgm create memory dudemem > cgm movepid memory dudemem 28433 > cgm setvalue memory dudemem memory.limit_in_bytes 1000000000
> find /sys/fs/cgroup/ -name "dude*" > /sys/fs/cgroup/memory/user.slice/user-1000.slice/session-c3.scope/dudemem > /sys/fs/cgroup/cpu,cpuacct/user.slice/user-1000.slice/session-c3.scope/dudecpu