Docker Desktop 的资源节省模式

资源节省模式通过在容器停止运行一段时间后自动停止 Docker Desktop Linux 虚拟机,显著减少了 Docker Desktop 在主机上的 CPU 和内存利用率,通常可以减少 2GB 或更多。默认时间设置为 5 分钟,但可以根据您的需要进行调整。

在资源节省模式下,Docker Desktop 在空闲时占用最少的系统资源,从而帮助您延长笔记本电脑的电池续航时间并改善您的多任务体验。

配置资源节省器

资源节省模式默认启用,但可以在“**设置**”中的“**资源**”选项卡中禁用。您也可以按如下所示配置空闲计时器。

Resource Saver Settings

如果可用值不满足您的需求,您可以将 `autoPauseTimeoutSeconds` 在 Docker Desktop 的 `settings-store.json` 文件(或 Docker Desktop 4.34 及更早版本的 `settings.json` 文件)中更改为任何大于 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 图标上会显示一个叶子图标。下图显示,当资源节省模式开启时,Linux VM 的 CPU 和内存利用率降至零。

    Resource Saver Status Bar
  • 不运行容器的 Docker 命令,例如列出容器镜像或卷,不一定会触发退出资源节省模式,因为 Docker Desktop 可以在不唤醒 Linux VM 的情况下执行此类命令。

注意

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

资源节省模式与暂停模式

资源节省模式的优先级高于旧的暂停功能,这意味着当 Docker Desktop 处于资源节省模式时,无法手动暂停 Docker Desktop(也没有意义,因为资源节省模式实际上会停止 Docker Desktop Linux VM)。通常,我们建议启用资源节省模式,而不是禁用它并使用手动暂停功能,因为前者能带来更好的 CPU 和内存节省。

Windows 上的资源节省模式

在带有 WSL 的 Windows 上,资源节省模式的工作方式略有不同。它不会停止 WSL VM,而只是暂停 `docker-desktop` WSL 分发版中的 Docker Engine。这是因为在 WSL 中,所有 WSL 分发版共享一个 Linux VM,因此 Docker Desktop 无法停止 Linux VM(即 WSL Linux VM 不归 Docker Desktop 所有)。因此,资源节省模式可以降低 WSL 上的 CPU 利用率,但不能降低 Docker 的内存利用率。

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

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.