# Docker Desktop 数据迁移到 D 盘脚本 # 以管理员身份运行 PowerShell Write-Host "=== Docker Desktop 数据迁移脚本 ===" -ForegroundColor Cyan Write-Host "" # 1. 停止 Docker Desktop Write-Host "[1/6] 停止 Docker Desktop..." -ForegroundColor Yellow Stop-Process -Name "Docker Desktop" -Force -ErrorAction SilentlyContinue Start-Sleep -Seconds 5 # 2. 停止 WSL Write-Host "[2/6] 停止 WSL..." -ForegroundColor Yellow wsl --shutdown Start-Sleep -Seconds 3 # 3. 创建目标目录 Write-Host "[3/6] 创建目标目录..." -ForegroundColor Yellow $targetDir = "D:\DockerData" if (-not (Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir -Force | Out-Null } # 4. 导出 docker-desktop-data Write-Host "[4/6] 导出 docker-desktop-data (这可能需要几分钟)..." -ForegroundColor Yellow $exportPath = "$targetDir\docker-desktop-data.tar" wsl --export docker-desktop-data $exportPath if (Test-Path $exportPath) { Write-Host " 导出成功: $exportPath" -ForegroundColor Green # 5. 注销原有的 Write-Host "[5/6] 注销原有发行版..." -ForegroundColor Yellow wsl --unregister docker-desktop-data # 6. 导入到新位置 Write-Host "[6/6] 导入到新位置..." -ForegroundColor Yellow wsl --import docker-desktop-data "$targetDir\wsl" $exportPath --version 2 # 删除临时文件 Remove-Item $exportPath -Force Write-Host "" Write-Host "=== 迁移完成 ===" -ForegroundColor Green Write-Host "Docker 数据已迁移到: $targetDir" -ForegroundColor Cyan } else { Write-Host " 导出失败,请检查 docker-desktop-data 是否存在" -ForegroundColor Red Write-Host " 运行 'wsl --list -v' 查看所有发行版" -ForegroundColor Yellow } Write-Host "" Write-Host "请手动启动 Docker Desktop 完成迁移" -ForegroundColor Yellow