我刚刚升级到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桌面 将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

一个很好的工具:

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

最好的选择是更新注册表。遵循以下步骤

Shutdown the wsl. Use the command wsl --shutdown. Move the entire C:\Users\%USERPROFILE%\AppData\Local\Docker directory to different drive for example D:\Docker. Goto Registry editor location Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss. Find the registry entry with the BasePath set to C:\Users\%USERPROFILE%\AppData\Local\Docker\wsl\data. Update this D:\Docker\wsl\data. Find another registry entry with the BasePath set to C:\Users\%USERPROFILE%\AppData\Local\Docker\wsl\distro. Update this D:\Docker\wsl\distro. Restart wsl using: wsl -d Ubuntu.

对我来说,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

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

Extending @Attila Badi 's answer would be to also give the same treatment to the C:\ProgramData\Docker folder, which seems to be used for WSL / Windows Containers. Even moving the Docker data folders, would still leave you with a boot drive ProgramData\Docker folder of massive proportions - especially if you are unable or unwilling to clean the images. You cannot migrate it, or move it once installed. Using the Docker engine advanced settings works in Linux container mode, but not in windows and vice versa and has trouble starting.

我遵循的步骤:

卸载码头工人。我知道…确保你已经保存了你需要的东西。 创建主要占用空间的docker文件夹,在一个你有很多空间的位置,例如: D: \ \码头工人\ ProgramData_Docker &数据 D: \ \码头工人\ AppData_Local_Docker数据 以管理员模式在命令窗口中执行如下命令创建链接文件夹:

mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Data\Docker\ProgramData_Docker"
mklink /j "C:\ProgramData\Docker" "D:\Data\Docker\AppData_Local_Docker"

安装码头工人。

您应该能够愉快地提取windows服务器映像,但不会阻塞您的引导驱动器。

更新:

尝试符号链接C:\ProgramData\Docker文件夹,可能会导致安全错误,这取决于运行的版本,取决于最初安装的版本。

4.13.0的发布说明提到了这个功能,这是一个可能的解决方案(感谢@bhagerty和@Oly提供的线索):

 start /w “” “Docker Desktop Installer.exe” install --installation-dir=G:\Docker

(来源:ungureanuovidiu @ https://forums.docker.com/t/docker-installation-directory/32773/17 )