限制 Docker Desktop 的资源使用

 更新时间:2026年04月24日 09:03:46   作者:hopsky  
本文主要介绍了限制 Docker Desktop 的资源使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

限制 Docker Desktop 的资源使用主要分为两个层面:

  1. 限制 Docker Desktop 应用本身(虚拟机)能使用的最大资源:这是最直接的方法,防止 Docker 把你的电脑(宿主机)跑满。
  2. 限制单个容器的资源:在运行具体的容器时,通过参数指定其上限。

以下是针对 Windows/macOS 系统(Docker Desktop 运行在虚拟机中)的具体操作方法。

1. 限制 Docker Desktop 本身(全局资源限制)

这是解决“电脑卡顿”的最有效手段。Docker Desktop 本质上是一个轻量级虚拟机(Linux VM),你需要限制这个虚拟机能从你的电脑里拿走多少资源。

🍎 macOS 操作步骤:

  1. 点击顶部状态栏的 Docker 图标 🐳。
  2. 选择 Settings (设置) -> Resources (资源)
  3. 在左侧菜单选择 Advanced (高级)
  4. 调整以下参数:
    • CPUs:建议设置为物理核心数的 50%~75%。例如你的电脑有 8 核,可以给 Docker 分配 4-6 核。
    • Memory:建议设置为总内存的 25%~50%。例如 16GB 内存的电脑,分配 4GB-8GB 给 Docker。
    • Disk image size:设置虚拟磁盘大小(默认 64GB,建议根据硬盘空间适当调整,避免占满硬盘)。
  5. 点击 Apply & Restart 重启生效。

🐧 Windows 操作步骤 (WSL2 后端):

Windows 下的资源限制稍微复杂一点,因为 Docker Desktop 依赖 WSL2。

  • 方法 A:通过 Docker Desktop 设置 (部分有效)

    1. Docker 图标右键 -> Settings -> Resources -> WSL Integration
    2. 虽然这里主要是开关发行版,但你可以通过限制 WSL2 的总资源来间接控制。
  • 方法 B:通过 WSL 配置文件 (推荐,更彻底)
    由于 Docker Desktop 在 Windows 上依赖 WSL2,你需要创建一个全局的 WSL 配置来限制所有 WSL 发行版(包括 Docker)的资源。

    1. C:\Users\<你的用户名>\ 下创建一个文件:.wslconfig
    2. 编辑该文件,添加以下内容(根据你的电脑配置调整):
      [wsl2]
      # 限制 WSL2 最多使用 4 个 CPU 核心
      processors=4
      # 限制 WSL2 最多使用 4GB 内存
      memory=4GB
      # 限制 Swap 空间
      swap=1GB
    3. 保存后,在 PowerShell 中运行 wsl --shutdown,然后重启 Docker Desktop。

2. 限制单个容器的资源

如果你希望某个特定的服务(比如一个数据库容器)不能无限制吃资源,可以在运行时指定。

🚀 使用命令行 (docker run)

资源类型参数说明示例
内存限制-m 或 --memory设置内存硬限制docker run -m 512m ... (限制为512MB)
CPU 限制--cpus设置 CPU 核心数(绝对限制)docker run --cpus=1.5 ... (限制为1.5核)
CPU 权重--cpu-shares设置相对权重(默认1024),仅在资源紧张时生效docker run --cpu-shares=512 ... (优先级较低)
磁盘IO限制--device-read-bps限制读写速度docker run --device-write-bps /dev/sda:1mb ...

📝 使用 Docker Compose (推荐用于项目)

如果你是用 docker-compose.yml 管理项目,在文件中直接定义资源限制:

version: '3.8'
services:
  web:
    image: nginx
    deploy: # 注意:使用 docker-compose up 时,部分版本需要加 deploy 层级
      resources:
        limits:
          cpus: '1.0'      # 最多使用1个CPU核心
          memory: 512M     # 最多使用512MB内存
        reservations:
          cpus: '0.5'      # 预留资源(软限制)
          memory: 256M
    # 如果上面的 deploy 不生效,也可以尝试直接写在 service 根层级(取决于compose版本)
    # command: ...

💡 3. 额外建议:清理与监控

  • 定期清理:停止的容器和未使用的镜像会占用磁盘空间,偶尔也会导致守护进程卡顿。定期运行:
    # 清理所有未使用的容器、网络、镜像和构建缓存
    docker system prune -a
  • 监控资源:使用 docker stats 命令实时查看哪个容器正在疯狂吃资源。

总结建议:

如果你的电脑经常卡顿,首先去 Docker Settings -> Resources 里把内存和 CPU 的滑块调小一点(例如限制在 4核/4GB),这是最立竿见影的优化手段。

到此这篇关于限制 Docker Desktop 的资源使用的文章就介绍到这了,更多相关Docker Desktop限制资源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker部署Kafka以及Spring Kafka实现

    Docker部署Kafka以及Spring Kafka实现

    这篇文章主要介绍了Docker部署Kafka以及Spring Kafka实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Docker创建一个Nginx服务器的方法步骤

    Docker创建一个Nginx服务器的方法步骤

    使用Dokcer可以很好的对镜像进行管理,创建和使用容器。这篇文章主要介绍了Docker创建一个Nginx服务器的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 通过docker create与export分析诊断故障镜像

    通过docker create与export分析诊断故障镜像

    在容器化技术主导现代应用部署的今天,Docker镜像的可靠性直接影响着系统的稳定性,然而,当开发者面对一个无法正常启动的"问题镜像"时,传统的调试手段往往显得捉襟见肘,此时,docker create与docker export的组合技可以解决这个问题,下面小编给大家详细说说
    2025-04-04
  • docker镜像管理命令详解

    docker镜像管理命令详解

    这篇文章主要介绍了docker镜像管理命令,我们也可以使用命令来搜索镜像,比如我们需要一个tomcat的镜像来作为我们的web服务,我们可以通过 docker search 命令搜索tomcat来寻找适合我们的镜像,本文给大家介绍的非常详细,需要的朋友参考下吧
    2022-07-07
  • Docker运维一键排查Shell脚本,6大功能搞定容器90%线上故障

    Docker运维一键排查Shell脚本,6大功能搞定容器90%线上故障

    本文介绍了一款自研的Docker一键排查Shell脚本,该脚本主要用于Docker容器运维,包括容器重启、端口占用、磁盘使用、网络故障、镜像臃肿、安全权限等常见问题的排查,感兴趣的朋友一起看看吧
    2024-10-10
  • Docker部署及使用压测神器sysbench的方法

    Docker部署及使用压测神器sysbench的方法

    sysbench 是一个开源跨平台的多线程性能测试工具,这篇文章主要介绍了Docker部署及使用压测神器sysbench的相关知识,需要的朋友可以参考下
    2022-08-08
  • 已有docker镜像构建过程分析(使用示例)

    已有docker镜像构建过程分析(使用示例)

    docker history命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间、创建者、大小和注释等信息,本文介绍已有docker镜像构建过程分析,感兴趣的朋友一起看看吧
    2024-12-12
  • Docker之容器文件的上传和下载方式

    Docker之容器文件的上传和下载方式

    这篇文章主要介绍了Docker之容器文件的上传和下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker容器如何优雅的终止详解

    docker容器如何优雅的终止详解

    最近公司在试验如何将项目部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器优雅的终止。所谓优雅终止,指的就是程序在退出前有清理资源,保存必要中间状态,持久化内存数据的机会。下面通过这篇大家一起由简单到复杂逐一考量一下。
    2016-11-11
  • 服务器部署docker 运行.NET 8 项目的步骤

    服务器部署docker 运行.NET 8 项目的步骤

    文章介绍了在阿里云服务器上部署Docker并运行.NET 8项目的步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-03-03

最新评论