我刚刚升级到Windows 10 Home 2020年5月,激活了WSL2,并安装了Docker Desktop。

WSL2必须安装在我的系统盘上,这是一个小的SSD。我不想用docker图像填充它。如何更改docker映像路径?我想在我的大Windows文件系统中使用一个路径。

图像位置有些混乱。我认为它在/mnt/wsl/docker-desktop-data/。

如何在WSL2中更改docker映像的目录?我是否可以更改docker配置以选择/mnt/d内的路径,或从/mnt/d挂载docker数据dirs上的路径?


当前回答

对我来说,docker不会从junction开始。

然后我只使用目录符号链接:

Docker stopped

Folder "wsl" moved to other location on disk "B"

RUben@AD-RUBEN C:\Users\RUben\AppData\Local\Docker
$ mklink /D wsl "B:\dev\wsl"
**symbolic link** created for wsl <<===>> B:\dev\wsl

容器和映像已准备就绪,可以使用:

其他回答

我从github上的pxlrbt找到了这个工具。它使用标准的wsl导入/导出,非常安全。刚刚把我的docker-desktop-data发行版都移动到另一个驱动器,它工作得很好。

WSL 2 docker-desktop-data虚拟机磁盘镜像通常位于: 当地% USERPROFILE % \ AppData \ \码头工人\ wsl \ \ ext4.vhdx数据

按照以下步骤将其重新定位到其他驱动器/目录,并保留所有现有的docker数据(在docker Desktop 2.3.0.4(46911)上进行测试,并在更新3.1.0(51484)后继续工作):

首先,关闭你的docker桌面右键单击docker桌面图标,并选择退出docker桌面

然后,打开命令提示符:

wsl --list -v

你应该能够看到,确保这两个状态都是停止的。(wsl——关闭)

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

导出docker-desktop-data到文件中

wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar"

从wsl中注销docker-desktop-data,注意,在此之后,您的ext4。VHDX文件将自动删除(所以如果你有重要的现有图像/容器,请先备份它):

wsl --unregister docker-desktop-data

将docker-desktop-data导入回wsl,但现在是ext4。VHDX将驻留在不同的驱动器/目录:

wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\data\docker-desktop-data.tar" --version 2

再次启动Docker Desktop,它应该可以工作

你可以删除D:\Docker\wsl\data\ Docker -desktop-data.tar文件(而不是ext4. txt文件)。VHDX文件),如果一切看起来对你验证后

一个很好的工具:

ddolone /LxRunOffline:一个功能齐全的实用程序,用于管理Windows Linux子系统(WSL)

https://github.com/DDoSolitary/LxRunOffline

LxRunOffline.exe move    Move a distribution to a new directory.
Options:
  -n arg                Name of the distribution
  -d arg                The directory to move the distribution to.

例如:

退出docker桌面,然后:

wsl --shutdown
LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data

停止Docker桌面 将Docker文件夹从C:\Users\xxx\AppData\Local\Docker迁移到新路径 确保C:\Users\xxx\AppData\Local\Docker不在那里 以管理员模式打开cmd 运行以下命令,将在cmd窗口中创建一个具有适当的from和to路径的符号链接

    mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"

重启Docker Desktop

使用小SSD也可以重新定位WSL交换文件的位置。

https://learn.microsoft.com/en-us/windows/wsl/wsl-config