Docker Desktop 的资源节省模式

资源保存器是 Docker Desktop 4.24 及更高版本中新增的功能。它通过在一段时间内无容器运行时自动停止 Docker Desktop 的 Linux 虚拟机,显著降低 Docker Desktop 对主机 CPU 和内存的占用,降幅可达 2GB 或更多。默认超时时间为 5 分钟,但可根据您的需求进行调整。

启用资源节省模式后,Docker Desktop 在空闲时仅使用最少的系统资源,从而帮助您延长笔记本电脑电池续航时间,并提升多任务处理体验。

如何配置资源节省器(Resource Saver)

资源节省器默认已启用,但您可以通过进入设置中的资源标签页将其禁用。您还可以按照下方所示配置空闲计时器。

Resource Saver Settings

如果可用的值无法满足您的需求,您可以通过修改 Docker Desktop 的 settings-store.json 文件(或 Docker Desktop 4.34 及更早版本中的 settings.json 文件),将 autoPauseTimeoutSeconds 更改为任意大于 30 秒的值,从而重新配置该值。

  • Mac: ~/Library/Group Containers/group.com.docker/settings-store.json
  • Windows: C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json
  • Linux: ~/.docker/desktop/settings-store.json

重新配置后无需重启 Docker Desktop。

当 Docker Desktop 进入资源节省模式时:

  • 在 Docker Desktop 状态栏以及系统托盘中的 Docker 图标上会显示一片叶子图标。下图展示了在启用资源节省模式(Resource Saver mode)时,Linux 虚拟机(VM)的 CPU 和内存使用率降至零的情况。

    Resource Saver Status Bar
  • 不运行容器的 Docker 命令,例如列出容器镜像或卷,不一定触发退出资源保存器(Resource Saver)模式,因为 Docker Desktop 可以在不必要地唤醒 Linux 虚拟机的情况下处理此类命令。

注意

当 Docker Desktop 需要时,将自动退出资源节省模式。 触发退出资源节省模式的命令执行时间会稍长一些(约 3 至 10 秒),因为 Docker Desktop 需要重新启动 Linux 虚拟机。 在 Mac 和 Linux 系统上通常速度较快,而在使用 Hyper-V 的 Windows 系统上则较慢。 一旦 Linux 虚拟机重启完成,后续容器的运行将立即恢复正常速度。

资源保存模式与暂停模式

资源节省器的优先级高于较旧的 暂停功能, 这意味着当 Docker Desktop 处于资源节省器模式时,无法手动暂停 Docker Desktop(且这样做也没有意义,因为资源节省器实际上会停止 Docker Desktop 的 Linux 虚拟机)。通常,我们建议启用资源节省器,而非禁用它并改用手动暂停功能,因为前者能带来更显著的 CPU 和内存节省效果。

Windows 上的资源保存模式

在 Windows + WSL 环境下,Resource Saver 的工作方式略有不同。它并不会停止 WSL 虚拟机,而是仅暂停位于 docker-desktop WSL 发行版中的 Docker Engine。这是因为在 WSL 中,所有 WSL 发行版共享同一个 Linux 虚拟机,因此 Docker Desktop 无法停止该 Linux 虚拟机(即 WSL Linux 虚拟机并非由 Docker Desktop 独占管理)。因此,Resource Saver 可降低 WSL 的 CPU 使用率,但无法减少 Docker 的内存占用。

为减少 WSL 上的内存占用,我们建议用户改为启用 WSL 的 autoMemoryReclaim 功能,具体操作请参阅 Docker Desktop WSL 文档。最后,由于 Docker Desktop 不会停止 WSL 中的 Linux 虚拟机,因此退出资源节省模式是即时的(无退出延迟)。

反馈

若要提供反馈或报告您发现的任何错误,请在相应的 Docker Desktop GitHub 仓库中创建一个 Issue: