‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析

‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析

操作系统:Windows 11 家庭中文版 (23H2,22631.4037)16GB

Docker Desktop 版本:v4.34.3

如果赶时间,可以直接看结论

Docker Desktop用的频次不是很高,记得之前安装完,用wsl --list -v命令看到有三个WSL实例:

  NAME                    STATE           VERSION
* Ubuntu-20.04            Stopped         2
  docker-desktop          Stopped         2
  docker-desktop-data     Stopped         2

其中Ubuntu-20.04是WLS刚推出来时,我安装的,要先于Docker Desktop,那个时候Docker Desktop还不是基于WSL构建的。

现在(v4.34.3)用wsl --list -v查看发现只有两个WSL实例:

  NAME              STATE           VERSION
* Ubuntu-20.04      Running         2
  docker-desktop    Running         2

且Ubuntu-20.04 WSL随着Docker Desktop的启动而启动,关闭也同步。这不是我想要的。因为Ubuntu-20.04是我自己安装的一个虚拟机,有独立的使用场景,不希望与Docker Desktop耦合到一起。

要取消这个“绑定”也很简单,具体操作如下:

  1. 打开 Docker Desktop软件;
  2. 进入 Settings > Resources > WSL Integration
  3. 取消勾选 Enable integration with my default WSL distro
  4. 点击右下角的 Apply&Restart(应用并重启)
    alt text

👉 因为我机器默认的WSL为 Ubuntu-20.04(wsl --list -v结果中带*号的),而上面的设置会将默认的WSL作为docker的启动环境。所以导致Ubuntu与docker-desktop“同生死”。

本来以为勾选Enable integration with my default WSL distro是把默认的WLS(Ubuntu-20.04)当成docker-desktop-data WSL使用在。但当我取消勾选,重启Docker Desktop后,使用wsl --list -v并没有发现docker-desktop-data WSL。不过,Ubuntu-20.04 WSL的状态是Stopped了。

此时,我以为我的docker-desktop-data WSL没有因为我的设置更改而自动恢复,docker容器肯定启动不了,但实际上并没有,容器可以正常使用,功能未受影响。

👉 于是查阅相关资料,才发现从v4.30.0开始,取消了docker-desktop-data WSL。具体可参见官方Release Notes

alt text

结论

  1. Docker Desktop启动时如果不想启动非docker-desktop本身的但又被设置为默认的WSL,需要取消配置Settings > Resources > WSL Integration>Enable integration with my default WSL distro的勾选。
  2. Docker Desktop在v4.30.0之后去掉了docker-desktop-data WSL。同样的说法:v4.30.0后,docker-desktop-data被合并到docker-desktop了,但无从考证,也没去看源码。
posted @ 2025-03-30 01:19  菜越香  阅读(806)  评论(1)    收藏  举报