docker run启动容器时限制内存
在使用 docker run 启动容器时,你可以通过以下参数来限制容器的内存大小。
1.限制内存上限
1 | docker run -m 512m --memory-swap 512m your-image |
含义:
-m或--memory: 限制内存上限,例如512m,1g--memory-swap: 限制 swap 总量(包括内存本身 + swap)。设置为与-m相同值表示不允许使用 swap
2.只限制内存(允许 swap)
1 | docker run -m 512m --memory-swap 1g your-image |
表示:
- 容器最多使用 512MB 内存 + 512MB swap,共 1GB 内存空间
3.完全禁止 swap(推荐生产环境)
1 | docker run -m 512m --memory-swap 512m your-image |
或者:
1 | docker run -m 512m --memory-swap -1 your-image |
注意:
--memory-swap -1表示 允许无限 swap,不建议用于生产--memory-swap = memory表示禁用 swap(即 swap 限制 == 内存限制)
4.其他相关参数(可选)
--memory-reservation: 软限制,系统压力大时才会触发限制--oom-kill-disable: 是否在 OOM 时杀死容器,默认为false--kernel-memory: 限制内核内存(不建议使用,未来可能废弃)
5.限制内存 + 禁止 swap + 限制 CPU
1 | docker run \ |
这个容器最大使用 512MB 内存,禁止使用 swap,最多用 1.5 核 CPU。