前情提要
由于某個大創項目的需要和對貓娘機器人的迫切渴求(bushi 需要在電腦里面安裝docker desktop。由于電腦里面安裝了wsl2環境 因此決定使用wsl2+dockerdesktop的方式配置docker
遇到的問題
在像往常一樣安裝docker desktop并且啟動時 提示錯誤:
running engine: waiting for the Docker API: engine linux/wsl failed to run:
starting WSL engine:
error spotted in wslbootstrap log:
"[2025-03-21T13:07:10.372236810Z][wsl-bootstrap][F] exit status 32"
或者錯誤:
deploying WSL2 distributions
ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version:
getting main distro bootstrap version:
open \\wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name cannot be found.
checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.
解決方案
嘗試了網上給出的許多方法 比如 wsl --unregister docker-desktop
卸載重裝docker-desktop 重新安裝服務等等等等
最終發現:如果你自己編譯了wsl的內核,在.wslconfig 刪除加載這個內核即可解決
發現問題的原始issue https://github.com/microsoft/WSL/issues/11771
可能的原因:在內核構建流程中未打開部分功能
解決方案:
- 若你沒有自定義內核的需求,刪除自定義內核配置即可
- 若你存在自定義內核的需求,在
https://github.com/user-attachments/files/17561192/config-wsl-6.6.36.6.txt
這一配置上修改 - 若你需要高度自定義內核 則修改以下配置從
m
到y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_NFT_COMPAT= y CONFIG_NETFILTER_XT_NAT
=y
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
相關的話
由于這個問題是docker的問題 若你在wsl里面使用docker而非使用docker desktop也可能遇到這個問題