如何基于 WSL2 指定 docker 使用的发行版的位置

如何基于 WSL2 指定 docker 使用的发行版的位置

我想指定将使用哪些 WSL 发行版在 Windows 上运行 docker,或者至少我希望能够指定这些发行版所在的位置。

我有磁盘 c 和 d,Windows 安装在 c 上,这是一个空间较小的 SSD。我想让 docker 引擎在存储在 d 上的 WSL 发行版上运行。我可以通过以下操作在 d 中成功创建 WSL Ubuntu 20.04 发行版指示

但是,当我在 Windows 上安装 docker 时,它会创建另外 2 个 WSL 发行版:

wsl --list
Ubuntu-20.04 (Default)
docker-desktop-data
docker-desktop

我无法控制这些发行版的创建方式。有没有办法指定它们的位置,或者更好的办法是,让 docker 使用我的 Ubuntu-20.04 发行版作为其后端。

答案1

让 docker 使用我的 Ubuntu-20.04 发行版作为其后端

  1. 当 Docker Desktop 重新启动时,转到设置> 资源> WSL 集成。
  • WSL 集成将在您的默认 WSL 发行版上启用。

  • 要更改默认的 WSL 发行版,请运行wsl --set-default <distro name>

    例如,要将 Ubuntu 设置为默认 WSL 发行版,请运行wsl --set-default ubuntu

  1. 单击“应用并重新启动”。

来源Docker Desktop WSL 2 后端 | Docker 文档

因此尝试运行:

wsl --set-default Ubuntu-20.04

如上所述,步骤 8。

答案2

我设法通过使用我找到的教程来移动发行版这里。当 docker for windows 使用 WSL2 时,它会创建 2 个发行版 (docker-desktop-data、docker-desktop)。可以使用以下命令移动两个发行版:

wsl --export docker-desktop-data data.tar
wsl --unregister  docker-desktop-data
mkdir docker
wsl --import  docker-desktop-data docker data.tar

wsl --export docker-desktop docker.tar
wsl --unregister   docker-desktop 
mkdir docker-base 
wsl --import   docker-desktop  docker-base  docker.tar

相关内容