檢查要求
- Windows 10 企業版、專業版或教育版 (必須windows10 1903版本以上)版本號
18362.1049+
或18363.1049+
,次版本#大於.1049
。最好是最新版(新版windows可以hype-v wsl2 vmvare共存,但安卓模擬器目前還沒穩定的共存版本)。建議使用wsl2,安裝包容量會比起hype-v小很多 。 - Windows開啟wsl2,建議 Windows 10 2004(版本號不低於 19041.264),可wsl2與vmvare共存。
- CPU 支持並開啟虛擬化(
Intel VT-c
或AMD SVM
)。 - 最少 4 GB 內存。
對於專業版、企業版、教育版可以使用docker desktop wsl2模式,此處無需開啟Hype-v
對於Win10 家庭版,Win10 19041.264之前版本,及 Win7 8用戶,可以使用docker desktop Hype-v
后端。
修改安裝盤
Docker Desktop 默認安裝到 C:\Program Files\Docker
並不可更改,這樣很不友好,可以通過軟連接的方式改變Docker Desktop 默認安裝盤。
mklink /J "C:\Program Files\Docker" "D:\Program Files\Docker"
限制wsl2運行最大內存
WSL 是 Microsoft 提供的一項功能,可以使開發人員能夠直接在 Windows 上運行 GNU/Linux
環境,無需修改,無需傳統虛擬機或雙引導設置,減少了開發人員的使用復雜度
在 Docker Desktop 使用了 WSL 2 中的動態內存分配特性,極大地提高了資源消耗。這意味着,Docker Desktop 僅使用其所需的 CPU 和內存資源量,同時使 CPU 和內存密集型任務(例如構建容器)運行得更快。
但WSL2目前一個弊端,可能WSL2 vm會分配所有可用內存,並最終導致操作系統和其他應用程序的內存不足。
所以需要對WLS2內存和CPU資源進行限制,在 cmd
或 powshell
終端中
wsl --shutdown
fsutil file createNew %UserProfile%/.wslconfig 0
notepad "%UserProfile%/.wslconfig"
在用戶目錄創建一個文件.wslconfig
,編輯 .wslconfig
[wsl2]
memory=3GB # 限制wsl2的虛擬機最大內存
processors=4 # 限制wsl2使用的處理器數量
swap=0 # 不使用交換文件
安裝Docker Desktop
完成上面的操作,可以安裝Docker Desktop了。從Docker Desktop網站下載安裝Docker Desktop for Windows,大於500M。
安裝步驟基本上點擊操作即可,沒有什么難度
鏡像路徑遷移
當使用了WSL2作為Docker Desktop后端引擎時,WSL 2 Docker-Desktop-Data
的VM磁盤鏡像通常在 %USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
路徑下,docker-desktop通常在%LOCALAPPDATA%/Docker/wsl
路徑下,因為鏡像的大小及一些交換文件,通常會占用大量C盤空間,可以改變其存儲位置。
wsl --list -v
輸入上述命令可以看到如下內容
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
docker-desktop
替換了之前使用的 Hyper-V VM 實現 Docker Desktop。這處理容器的引導和管理。
docker-desktop-data
是存儲docker鏡像和配置的地方;實際上是對 Hyper-V 以前使用的虛擬硬盤的直接替換。
從這里可以看出Docker Desktop使用了WSL2作為后端引擎時,實際上整個應用作為WLS2的兩個子系統進行的。可以通過遷移WSL2系統鏡像的存儲位置來改變Docker霸占C盤不可轉移的弊端。
導出wsl系統鏡像
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
刪除Docker Desktop wsl子系統,此操作會自動刪除 ext4.vhdx
文件,故需要先導出一份備份
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
導入重新創建wsl Docker Desktop子系統
wsl --import docker-desktop d:\{new_path} docker-desktop.tar
wsl --import docker-desktop-data d:\{new_path} docker-desktop-data.tar
完成后,啟動Docker服務,如果服務正常,可以刪除掉 docker-desktop.tar
與 docker-desktop-data.tar
無法啟動
我在使用windows時,會安裝冰點還原,因為windows10 以上需要 冰點還原 8.38以上,我這里使用 8.38.020.4676 版本時,在開啟還原狀態時,Docker無法正常啟動,在關閉還原時,可以正常啟動。更換 8.62.020.5630。后正常。 8.38.020.4676 是2017年的版本,當時Docker對windows兼容並不好,而8.38.020.4676 是2020年發行的版本,目前在使用中並未發現異常。 8.38.020.4676 與 8.62.020.5630為網上常見的純凈的破解版了,所以按需選擇使用。