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
2
3
4
5
docker run \
-m 512m \
--memory-swap 512m \
--cpus="1.5" \
your-image

这个容器最大使用 512MB 内存,禁止使用 swap,最多用 1.5 核 CPU。