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,因此退出資源節省模式是即時的(沒有退出延遲)。