nev*_*ves 129 docker windows-10 docker-desktop wsl-2
我刚刚升级到 Windows 10 Home May 2020,激活 WSL2并安装Docker Desktop。
WSL2必须安装在我的系统盘中,这是一个小型SSD。我不想用 docker 图像填充它。如何更改 docker 图像路径?我想在我的大 Windows 文件系统中使用一个路径。
该图像位置有点混乱。我相信它在/mnt/wsl/docker-desktop-data/
.
如何更改 WSL2 中 docker 镜像的目录?我可以更改 docker 配置以/mnt/d
在 docker 数据目录上选择一个路径,或者从 /mnt/d 挂载一个路径吗?
小智 334
WSL 2 docker-desktop-data vm 磁盘映像通常位于:
%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
按照以下步骤将其重新定位到其他驱动器/目录,并保留所有现有的 docker 数据(针对 Docker Desktop 2.3.0.4 (46911) 进行测试,并在更新 3.1.0 (51484) 后继续工作):
首先,通过右键单击 Docker 桌面图标并选择退出 Docker 桌面来关闭 Docker 桌面
然后,打开您的命令提示符:
wsl --list -v
Run Code Online (Sandbox Code Playgroud)
您应该能够看到,确保两者的状态都已停止。( wsl --shutdown
)
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
Run Code Online (Sandbox Code Playgroud)
将 docker-desktop-data 导出到文件中
wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar"
Run Code Online (Sandbox Code Playgroud)
从 wsl 注销 docker-desktop-data,请注意,在此之后,您的ext4.vhdx
文件将被自动删除(因此,如果您有重要的现有图像/容器,请先备份它):
wsl --unregister docker-desktop-data
Run Code Online (Sandbox Code Playgroud)
将 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
Run Code Online (Sandbox Code Playgroud)
再次启动 Docker 桌面,它应该可以工作
如果在验证后一切看起来都不错,您可以删除D:\Docker\wsl\data\docker-desktop-data.tar
文件(不是ext4.vhdx
文件)
Yim*_* Lu 13
编辑:重新注册 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
Run Code Online (Sandbox Code Playgroud)
tar 文件是用于安装的文件,在它之前是您的新目的地。
这总是有效,而move-wsl
或lxrunoffline
在快速环上对我不起作用。有时您必须先卸载/安装 docker
小智 10
C:\Users\xxx\AppData\Local\Docker
从新路径重新定位C:\Users\xxx\AppData\Local\Docker
不再存在 mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"
Run Code Online (Sandbox Code Playgroud)
小智 10
对我来说,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
Run Code Online (Sandbox Code Playgroud)
容器和镜像可供使用:
Tom*_*Tom 10
Docker for Windows 现在支持在 UI 中更改此设置,如下图所示。我相信它也可以处理现有文件的移动。
扩展@Attila Badi 的答案是也对 C:\ProgramData\Docker 文件夹进行相同的处理,该文件夹似乎用于 WSL/Windows Containers。即使移动 Docker 数据文件夹,仍然会给您留下大量的启动驱动器 ProgramData\Docker 文件夹 - 特别是如果您无法或不愿意清理图像。您不能迁移它,也不能在安装后移动它。使用 Docker 引擎高级设置在 Linux 容器模式下有效,但在 Windows 中无效,反之亦然,并且启动有问题。
我遵循的步骤:
卸载 Docker。我知道...确保你已经保存了你需要的东西。
创建主要的空间占用 docker 文件夹,在一个你有很多空间的位置,例如:
D:\Data\Docker\ProgramData_Docker
&
D:\Data\Docker\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"
Run Code Online (Sandbox Code Playgroud)
您应该能够愉快地拉取 Windows 服务器映像,但不会堵塞您的启动驱动器。
小智 5
一个不错的工具:
DDoSolitary/LxRunOffline:用于管理 Windows Subsystem for 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.
Run Code Online (Sandbox Code Playgroud)
例如:
退出 docker 桌面,然后:
wsl --shutdown
LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data
Run Code Online (Sandbox Code Playgroud)
小智 5
最好的选择是更新注册表。请按照以下步骤操作
wsl --shutdown
.wsl -d Ubuntu
: 归档时间: |
|
查看次数: |
34849 次 |
最近记录: |