KiRorY
Windows Docker 安装及存储转移方法

Windows Docker 安装及存储转移方法

  Docker Desktop 是Docker的GUI客户端,但其出奇得不好用(可视化安装时不能选择安装路径,运行参数能直观设置等)。但在Windows平台上却只能使用这个方案,且基本需要搭配子系统使用。最近使用时研究了一下,并整理了WSL系统目录,Docker Desktop以及Docker容器存储位置的移动方法,至少可以让Docker不会莫名占用系统盘大量空间。

Docker Desktop 安装目录更改

   首先下载Docker Desktop。实际上Docker官方的文档中有写到如何手动设置其安装目录。不过笔者在网上查找时还是却很少有提到这点。还是之前在某个知乎帖子下面的回复找到的。网上有很多是通过创建软连接的方式“偷换”了其安装路径,笔者并没有使用这种方法,不知道其可行性。不过使用官方的方法是可行的。

   官方给出的方法是使用命令行安装。所以下载完官方的exe安装包先别急着双击打开。打开CMD并将目录切换到你的安装包下载位置。命令行安装方法可以增加很多参数进行设置(不知道为什么很多基础功能比如更改安装位置或者下载代理都不做可视化)。这里给出修改安装位置的命令:

1
"Docker Desktop Installer.exe" install --installation-dir=<安装目录>

如果用的是powershell,那么命令如下:

1
Start-Process 'Docker Desktop Installer.exe' -Wait install --installation-dir=<安装目录>

其它参数命令可以看官方手册

WSL系统目录更改

  Windows系统会默认将WSL(Linux子系统)的模拟磁盘环境放置在C盘。而Docker使用WSL后的存储目录也在C盘,一般是在:C:\Users\<用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx。如果是Docker的WSL目录,那么其实可以在安装时使用上面提到的命令行参数进行更改。如果已经安装完成,那么也可以进行更改,并且更改方法适用于所有WSL子系统目录修改。

  首先使用wsl --list -v查看已安装子系统以及其状态,例如:

1
2
3
4
5
  NAME                   STATE           VERSION
* Arch Running 2
docker-desktop Stopped 2
docker-desktop-data Stopped 2
Ubuntu Stopped 2
记住需要移动的系统的版本(VERSION)的数字。如果其正在运行,那么使用wsl --shutdown关闭。这里以移动Docker的系统数据为例。我们需要移动的是docker-desktop-data这个系统(请注意不要更改docker-desktop这个系统!)

  • 首先我们对需要移动的系统进行备份。

    1
    wsl --export docker-desktop-data "<你想保存备份压缩包的目录(随意)>\docker-desktop-data.tar"
    这一步就是将要移动的系统整个系统打成一个压缩包暂存,之后需要用它还原原来的系统

  • 然后解除原先位置的系统。

    1
    wsl --unregister docker-desktop-data

  • 最后指定新的目录位置并还原备份的系统

    1
    wsl --import docker-desktop-data "<你希望移动到的目录>" "<刚刚保存备份压缩包的目录>\docker-desktop-data.tar" --version 之前查看的VERSION数字

完成之后目录就更改成功了,终于解放了系统盘Ꮚ・ꈊ・Ꮚ。

本文作者:KiRorY
本文链接:https://kirory.xyz/2023/11/10/Windows-docker-安装及存储转移方法/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可