
情境
我設定了運行 Debian 的 WSL2。我運行一些 Docker 撰寫腳本。除了我在 Windows 上安裝的 Docker Desktop 之外,所有內容都包含在 WSL2 中。
我已經了解到可以在 WSL2 中運行 Docker,而無需在 Windows 中使用 Docker Desktop。但是,我不明白當我使用 Docker Desktop 時幕後發生了什麼。特別是因為我從未(故意)在 Debian 實例上安裝任何 docker 軟體包。
Windows 中的 Docker Desktop 會向我顯示哪些容器正在運作。啟動和 IO 發生在 Debian 實例。
問題
Docker 引擎/容器在 Windows 中還是在 WSL2 中運作?
答案1
請參閱 Docker 文檔 Windows 上的 Docker Desktop WSL 2 後端:
Windows Subsystem for Linux (WSL) 2 是 Microsoft 建構的完整 Linux 內核,它允許 Linux 發行版在不管理虛擬機器的情況下運作。透過在 WSL 2 上執行 Docker Desktop,使用者可以利用 Linux 工作區並避免同時維護 Linux 和 Windows 建置腳本。此外,WSL 2 還改進了檔案系統共享和啟動時間。
這些容器在簡化的虛擬機器內的 WSL2 下運作。 VM 本身是由在 Windows 主機上執行的 Hyper-V 執行。
Docker Desktop 是否在 Windows 或 WSL2 中執行其容器?
所以這個問題的答案其實是:「兩者」。它在 WSL2 下運行,而 WSL2 本身也在 Windows 下運行。