我刚刚升级到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上的路径?


当前回答

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

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

其他回答

在Windows 10 home中,docker desktop在“C:\Users\xxx\AppData\Local\ docker”目录下创建了虚拟机,该虚拟机包含下载的docker映像。如果你想改变虚拟机的位置从C:到一个不同的目录,你可以通过在windows上创建一个连接(在安装docker桌面之前),使用如下命令:

mklink /j “C:\Users\xxx\AppData\Local\Docker” “D:\Users\xxx\AppData\Local\Docker”

注意,在执行命令之前,目标目录结构应该存在,而如果C:\Users\xxx\AppData\Local\Docker目录已经存在,则应该删除该目录,否则命令可能会失败。现在在windows 10 home上安装docker desktop,瞧,你可以在“D:\Users\xxx\AppData\Local\ docker”目录中看到一些东西,即docker虚拟机硬盘镜像文件,该文件将包含所有下载的docker镜像。

编辑:重新注册docker-desktop会将默认的docker-data设置为C盘,所以我们应该只将取消注册docker-data作为接受的答案。

你可以这样做

 wsl --unregister docker-desktop-data

 wsl --import docker-desktop-data D:\wsl\docker-desktop-data "C:\Program Files\Docker\Docker\resources\wsl\wsl-data.tar" --version=2

tar文件是用于安装的文件,在它之前是您的新目标。

这总是工作,而移动-wsl或lxrunoffline不为我工作在快速环。有时你必须先卸载/安装docker

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

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