我刚刚升级到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-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
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文件),如果一切看起来对你验证后
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 )
一个很好的工具:
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