登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

Docker Desktop 如何限制单个开发环境的 CPU 和内存

来源:17golang原创

时间:2026-09-14 17:23:09 459浏览 收藏

热门推荐
漫画APP
动画内容聚合,热门资源快捷查看
立即下载

Docker Desktop 里的资源限制,先要分清“整个 Docker 后端能用多少”和“某一个容器最多用多少”。本篇处理的是前者:打开 Settings > Resources > Advanced,调整 CPU limitMemory limit,点击 Apply & Restart 后,再到容器的 Stats 面板核对状态。

官方地址:https://docs.docker.com/desktop/settings-and-maintenance/settings/

要点速览
  • CPU limit 和 Memory limit 是 Docker Desktop 后端的总资源上限,不是单个容器的硬上限。
  • 修改资源后必须应用并重启,回到 Running 状态再继续工作。
  • Containers > Stats 只能核对实际使用;单容器限制要在运行配置中另设。

在 Resources > Advanced 设置 Docker Desktop 的总资源上限

第1步:打开 Docker Desktop Dashboard,点击右上角的 Settings 图标;也可以从系统托盘的 Docker 菜单进入 Settings。左侧选择 Resources,再打开 Advanced

这里的 CPU limit 表示 Docker Desktop 最多使用的 CPU 数量,Memory limit 表示分给 Docker Linux VM 的内存。先看主机还要运行的 IDE、浏览器和数据库,不要把滑块直接推到主机极限。

Docker Desktop Resources Advanced 面板中设置 CPU limit 和 Memory limit 的软件界面操作示意图
图1:Docker Desktop Resources > Advanced 的资源配置操作示意图,重点查看 CPU limit 和 Memory limit。

第2步:在 CPU limit 处选择适合开发环境的核数,在 Memory limit 处输入或拖动到合适的内存值。Swap 是额外的交换空间配置,不能把它当成等价的物理内存;如果只是本地编译和少量服务,先给主机保留明显余量。

设置项它限制什么看到什么才算配置完成
CPU limitDocker Desktop 后端可使用的 CPU 上限字段或滑块显示目标核数
Memory limit分配给 Docker Linux VM 的内存字段显示目标内存值
Swap可配置的交换空间值与团队约定一致

点击 Apply & Restart,确认设置没有回退

第3步:检查两个值后点击 Apply & Restart。Docker Desktop 会重启后端,正在运行的开发容器可能短暂中断;等 Dashboard 回到 Running,再打开 Containers,不要在重启动画期间判断配置是否失效。

如果重启后又回到旧值,先确认是否打开了另一个 Docker Desktop 实例或组织策略覆盖设置。Windows 使用 WSL 2 后端时,部分内存和 CPU 行为还受 WSL utility VM 约束,不能只看一个滑块下结论。

用 Containers > Stats 核对容器实际用量

第4步:进入 Containers,选择一个正在运行的开发容器,打开详情里的 Stats。这里能看到容器当前 CPU、内存等使用情况,用来确认重启后服务确实恢复,以及当前负载是否接近 Docker Desktop 总上限。

Docker Desktop Containers Stats 面板显示开发容器 CPU 和内存使用状态的结果示意图
图2:Docker Desktop Containers > Stats 的结果示意图,用于核对容器实际 CPU 与内存使用。

要限制单个容器,应在创建或启动它时配置 --cpus--memory,或在 Compose 服务中写对应的资源字段。Desktop 的 Memory limit 是天花板,单容器限制则是天花板下面的分配规则,两者同时存在时取更严格的一层。

常见问题

调整 Memory limit 会改变镜像大小吗?

不会。它影响 Docker Desktop 后端可用的运行内存,不改变镜像层或磁盘占用。

为什么 Stats 里的容器内存没有等于 Memory limit?

Memory limit 是可用上限,Stats 展示的是当前使用量;容器没有吃满资源时,两者本来就不会相等。

改完 CPU limit 后还要给每个容器设置 CPU 吗?

如果只需要限制 Docker Desktop 总体资源,不必重复设置;要避免某个编译或测试容器独占资源,再额外设置单容器的 --cpus

最后按“Resources 配置值—Apply & Restart—Running—Containers Stats”这条路径复查一次,就能把资源设置、后端恢复和容器实际用量对应起来。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>