限制 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的详细教程

    Docker部署kafka的详细教程

    在现代分布式系统架构中,Apache Kafka 已成为实时数据流处理的事实标准,这篇文章为大家详细介绍了如何在Docker中部署kafka,感兴趣的小伙伴可以了解下
    2025-05-05
  • docker run -d和docker run -it的区别详解

    docker run -d和docker run -it的区别详解

    记得第一次接触docker的时候,教程中写着docker run -it之类的命令,当时对这个-it选项是一知半解,下面这篇文章主要给大家介绍了关于docker run -d和docker run -it的区别的相关资料,需要的朋友可以参考下
    2023-05-05
  • docker搭建dnsmasq服务的实现

    docker搭建dnsmasq服务的实现

    本文将指导读者如何使用Docker搭建DNSmasq服务,通过简单的步骤和详细的说明,帮助读者快速在Docker环境中部署DNSmasq,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Docker如何挂载mysql

    Docker如何挂载mysql

    这篇文章主要介绍了Docker如何挂载mysql问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker desktop中文设置方法步骤

    Docker desktop中文设置方法步骤

    这篇文章主要给大家介绍了关于Docker desktop中文设置的方法步骤,Docker Desktop默认使用英文界面,要设置为中文界面,请按照以下步骤操作,需要的朋友可以参考下
    2024-03-03
  • Docker镜像瘦身大小从1.43 GB减少到22.4MB

    Docker镜像瘦身大小从1.43 GB减少到22.4MB

    本文主要介绍了 Docker镜像瘦身大小从1.43 GB减少到22.4MB,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 在Docker容器中使用Arthas的详细步骤

    在Docker容器中使用Arthas的详细步骤

    本文不是介绍arthas怎么用的。这里要说的是,如何在我们的docker容器中,使用arthas,对如何在Docker容器中使用Arthas相关知识感兴趣的朋友一起看看吧
    2021-12-12
  • Docker使用Jumpserver搭建一个安全的堡垒机系统

    Docker使用Jumpserver搭建一个安全的堡垒机系统

    堡垒机作为一种重要的安全工具,能够有效地管理服务器访问权限,并提供会话审计功能,以保障系统的安全性和稳定性,本文将介绍Jumpserver,并指导如何搭建和配置Jumpserver来实现安全的堡垒机管理,需要的朋友可以参考下
    2025-04-04
  • Docker中RocketMQ的安装与使用详解

    Docker中RocketMQ的安装与使用详解

    这篇文章主要介绍了Docker中RocketMQ的安装与使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Docker部署PairDrop文件传输工具的项目实践

    Docker部署PairDrop文件传输工具的项目实践

    本文主要介绍了Docker部署PairDrop文件传输工具的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09

最新评论