在 Windows 上使用 Docker 时,如果你希望限制某个容器的内存使用为 2GB(2G),可以通过在运行容器时添加 --memory 或 -m 参数来实现。
🐳 限制 Docker 容器内存为 2GB
命令示例:
docker run -d --name my_container --memory="2g" my_image
--memory="2g":表示该容器最多可以使用 2GB 内存。-d:后台运行容器。my_container:容器名称。my_image:你要运行的镜像名。
🔒 同时限制 Swap 内存(可选)
默认情况下,Docker 允许容器使用一定量的 swap 空间。你也可以一并限制 swap:
docker run -d --name my_container --memory="2g" --memory-swap="2g" my_image
--memory-swap="2g":表示总的可用内存(内存 + swap)不超过 2GB。如果设置为-1,则表示不限制 swap。
🧪 查看容器内存限制
你可以通过以下命令查看当前容器的资源限制:
docker inspect my_container
然后查找 "MemLimit" 和 "MemorySwap" 字段。
⚠️ 注意事项
-
Windows Docker Desktop 的资源限制:
- 如果你使用的是 Docker Desktop for Windows,默认是基于 WSL2 的 Linux 容器模式。
- 整个 WSL2 虚拟机的资源(CPU、内存)可以在 Docker Desktop 设置中调整。
- 单个容器的内存仍需通过上述
--memory参数控制。
-
Windows 容器 vs Linux 容器:
- 上述方法适用于 Linux 容器(Docker 默认模式)。
- 如果你使用的是 Windows 容器,语法类似,但支持的功能可能略有不同。
🛠 示例:运行一个 Nginx 并限制内存为 2GB
docker run -d --name nginx-limited --memory="2g" -p 80:80 nginx
如需进一步限制 CPU、磁盘 IO 等资源,也可以使用其他参数如 --cpus, --blkio-weight 等。
如果你还有具体的应用场景或问题,比如“我跑 Java 应用时如何配合 JVM 参数一起限制”,也欢迎继续提问!
云知识