Skip to content

Docker Desktop 安装到非系统盘(Windows)

🚨 空间不足警告:将 Docker Desktop 默认安装在 C 盘会导致 SSD 空间被大量占用(容器、镜像、缓存等),即使卸载容器也无法完全释放空间。

问题根源

Docker Desktop 在 Windows 中的默认行为导致了空间问题:

  1. 强制C盘安装 - 安装向导不提供选择其他驱动器的选项
  2. 数据膨胀 - %HOME%\AppData\Local\Docker 存储所有数据(即使卸载容器仍保留缓存)
  3. 多位置占用 - 安装目录、镜像存储、WSL数据默认全在C盘
  4. 磁盘满载后果 - 造成系统卡顿,甚至影响 Docker 正常运行

解决方案概览

通过命令行参数强制指定安装路径,同时需区分三种关键目录:

参数作用示例取值是否必需
--installation-dir安装目录D:\Docker\Program✅ 必需
--wsl-default-data-rootLinux容器数据D:\Docker\wsl❗️推荐
--windows-containers-default-data-rootWindows容器数据D:\Docker\win⚠️可选

版本注意事项

  • Docker Desktop ≥v4.34.3:安装后可在设置中修改数据目录
  • Windows 10:需手动创建所有目标目录
  • Windows 11:部分版本需处理WSL兼容性问题

安装到非系统盘步骤

▸ 准备工作(必需)

  1. 官网下载 Docker Desktop Installer.exe
  2. 在目标盘(如D盘)创建目录:
    powershell
    # PowerShell (管理员)
    New-Item -ItemType Directory -Path "D:\Docker\Program"
    New-Item -ItemType Directory -Path "D:\Docker\wsl"
    New-Item -ItemType Directory -Path "D:\Docker\win"

▸ 方法一:命令行安装 (CMD)

  1. 管理员身份打开命令提示符
  2. 进入安装程序所在目录:
    cmd
    cd "C:\Users\<用户名>\Downloads"
  3. 执行安装命令:
    cmd
    start /w "" "Docker Desktop Installer.exe" install ^
      -accept-license ^
      --installation-dir="D:\Docker\Program" ^
      --wsl-default-data-root="D:\Docker\wsl" ^
      --windows-containers-default-data-root="D:\\Docker\\win"
    🔥 关键注意:
    • 路径中的空格的引号处理(完整路径需用双引号包裹)
    • Windows容器路径必须使用双反斜杠 \\

▸ 方法二:PowerShell 安装 (推荐)

powershell
# 以管理员身份运行
Start-Process -Wait -FilePath "Docker Desktop Installer.exe" -ArgumentList @(
  "install",
  "-accept-license",
  "--installation-dir=`"D:\Docker\Program`"",
  "--wsl-default-data-root=`"D:\Docker\wsl`"",
  "--windows-containers-default-data-root=`"D:\\Docker\\win`""
)

▸ 方法三:批处理脚本安装

batch
@echo off
set INSTALL_DIR=H:\Docker\Program
set WSL_DATA=H:\Docker\wsl
set WIN_DATA=H:\Docker\win

start /w "" "%~dp0Docker Desktop Installer.exe" install ^
  -accept-license ^
  --installation-dir="%INSTALL_DIR%" ^
  --wsl-default-data-root="%WSL_DATA%" ^
  --windows-containers-default-data-root="%WIN_DATA%"

将上述脚本与安装程序放同一目录后运行


🛠️ 安装后配置

▸ 验证安装路径

  1. 打开 Docker Desktop
  2. 进入 Settings > Resources > Advanced
  3. 检查各目录位置:
text
Install Path      → D:\Docker\Program  
WSL Data Location → D:\Docker\wsl  
Windows Containers Data
  Docker Root     → D:\Docker\win

▸ 解决 WSL 集成错误

若提示 WSL unexpectedly stopped,执行以下操作:

powershell
# PowerShell (管理员)
wsl --shutdown
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

重启 Docker Desktop 自动重建配置

数据丢失警告

--unregister 会删除当前所有容器和镜像,操作前务必备份!


❌ 错误解决方案警告

以下方法已过时或存在风险:

  • 修改注册表服务路径 → 导致 Docker 无法启动
  • 仅移动快捷方式 → 实际文件仍在C盘
  • 安装后手动剪切粘贴 → 破坏程序依赖关系

💡 高级技巧

  1. 空间实时监控:在 Docker Desktop Settings > Resources > Disk usage 查看各组件占用
  2. 跨驱动器迁移
    powershell
    # 停止所有服务
    wsl --terminate docker-desktop
    wsl --terminate docker-desktop-data
    
    # 导出数据
    wsl --export docker-desktop-data E:\wsl-backup.tar
    
    # 注销后重新导入
    wsl --unregister docker-desktop-data
    wsl --import docker-desktop-data D:\new\path E:\wsl-backup.tar

最佳实践总结

  1. 首次安装即指定路径 - 使用命令行参数一步到位
  2. 分离三种存储路径 - 程序/数据/WSL独立管理
  3. 定期清理缓存 - 运行 docker system prune -a --volumes
  4. 大文件监控 - 使用 WinDirStat 检查D:\Docker\目录大小
  5. 备份wsl数据 - 迁移前必备操作:
    wsl --export docker-desktop-data backup.tar

📌 终极建议:使用SSD作为存储盘(如D盘),避免使用机械硬盘,否则容器性能将断崖式下降。