插件窝 干货文章 如何限制docker容器的内存大小

如何限制docker容器的内存大小

内存 限制 memory 设置 700    来源:    2025-04-29

限制Docker容器内存大小的方法

在Docker中,可以通过多种方式限制容器的内存使用量,以下是几种主要方法:

1. 使用docker run命令时设置内存限制

docker run -it --memory="1g" --memory-swap="2g" ubuntu /bin/bash
  • --memory-m: 设置容器可用的物理内存上限(本例为1GB)
  • --memory-swap: 设置内存+交换分区的总大小(本例为2GB)

2. 使用docker update命令更新运行中容器的内存限制

docker update --memory="512m" --memory-swap="1g" <container_name_or_id>

3. 在Docker Compose文件中设置内存限制

version: '3'
services:
  myapp:
    image: myapp:latest
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

4. 高级内存限制选项

  • --memory-reservation: 设置内存软限制(当主机内存不足时才会强制执行)
  • --oom-kill-disable: 禁用OOM Killer(不建议使用,可能导致系统不稳定)
  • --kernel-memory: 限制内核内存使用

5. 验证内存限制

# 查看容器资源限制
docker inspect <container_name_or_id> | grep -i memory

# 在容器内查看实际限制
cat /sys/fs/cgroup/memory/memory.limit_in_bytes

注意事项

  1. 设置的内存限制应大于应用程序的最小需求
  2. 交换分区(swap)设置应至少等于内存限制
  3. 某些应用程序可能不遵守内存限制,需要特殊配置
  4. 在Kubernetes环境中,内存限制的设置方式有所不同

通过合理设置内存限制,可以防止单个容器占用过多主机资源,提高系统稳定性。