Docker Desktop 的资源节省模式

Resource Saver 是 Docker Desktop 4.24 及更高版本中提供的一项新功能。当一段时间内没有容器运行时,它会自动停止 Docker Desktop Linux 虚拟机,从而显着降低 Docker Desktop 主机上的 CPU 和内存利用率 2 GB 或更多。默认时间设置为 5 分钟,但可以根据您的需要进行调整。

通过资源节省模式,Docker Desktop 在空闲时使用最少的系统资源,从而使您可以节省笔记本电脑的电池寿命并改善多任务处理体验。

如何配置资源节省器

资源保护程序默认启用,但可以通过导航至“设置”中的“资源”选项卡来禁用。您还可以配置空闲计时器,如下所示。

资源节省设置

如果可用的值不足以满足您的需求,您可以通过autoPauseTimeoutSeconds在 Docker Desktopsettings.json文件中进行更改,将其重新配置为任意值,只要该值大于 30 秒即可:

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

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

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

  • 叶子图标显示在 Docker 桌面状态栏以及系统托盘中的 Docker 图标上。下图显示了资源节省模式开启时 Linux VM CPU 和内存利用率降至零。

    资源节省状态栏
  • 不运行容器的 Docker 命令(例如列出容器映像或卷)不一定会触发退出资源保护程序模式,因为 Docker Desktop 可以在无需唤醒 Linux VM 的情况下提供此类命令。

笔记

Docker Desktop 会在需要时自动退出资源节省模式。当 Docker Desktop 重新启动 Linux VM 时,导致退出 Resource Saver 的命令需要稍长的时间执行(大约 3 到 10 秒)。通常在 Mac 和 Linux 上速度更快,在使用 Hyper-V 的 Windows 上速度较慢。一旦 Linux VM 重新启动,后续容器就会像往常一样立即运行。

资源节省模式与暂停

Resource Saver 比旧的 Pause功能具有更高的优先级,这意味着当 Docker Desktop 处于 Resource Saver 模式时,手动暂停 Docker Desktop 是不可能的(也没有意义,因为 Resource Saver 实际上停止了 Docker Desktop Linux VM)。一般来说,我们建议保持资源节省程序处于启用状态,而不是禁用它并使用手动暂停功能,因为这样可以更好地节省 CPU 和内存。

Windows 上的资源节省模式

Resource Saver 在使用 WSL 的 Windows 上的工作方式略有不同。它不会停止 WSL VM,而只会暂停 docker-desktopWSL 发行版内的 Docker 引擎。这是因为在 WSL 中,所有 WSL 发行版共享一个 Linux VM,因此 Docker Desktop 无法停止 Linux VM(即,WSL Linux VM 不属于 Docker Desktop)。因此,Resource Saver 会降低 WSL 上的 CPU 利用率,但不会降低 Docker 的内存利用率。

为了减少 WSL 上的内存利用率,我们建议用户启用 WSL 的功能,如Docker Desktop WSL 文档autoMemoryReclaim中所述 。最后,由于 Docker Desktop 不会停止 WSL 上的 Linux VM,因此可以立即退出资源节省模式(没有退出延迟)。

反馈

要提供反馈或报告您可能发现的任何错误,请在相应的 Docker Desktop GitHub 存储库上创建问题: