# ══════════════════════════════════════════════════ # 00_install_docker_windows.ps1 # Windows 11 安装 Docker Desktop + WSL2 配置 # 用法:以管理员身份运行 PowerShell,执行: # .\scripts\00_install_docker_windows.ps1 # ══════════════════════════════════════════════════ #Requires -RunAsAdministrator $ErrorActionPreference = "Stop" function Write-Info { Write-Host "[INFO] $args" -ForegroundColor Cyan } function Write-Ok { Write-Host "[OK] $args" -ForegroundColor Green } function Write-Warn { Write-Host "[WARN] $args" -ForegroundColor Yellow } function Write-Err { Write-Host "[ERR] $args" -ForegroundColor Red; exit 1 } Write-Info "============================================" Write-Info "AI合规智能中枢 — Windows Docker 环境安装" Write-Info "============================================" # ── Step 1:启用 WSL2 ────────────────────────── Write-Info "Step 1/4:检查并启用 WSL2..." $wslFeature = Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux $vmFeature = Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform if ($wslFeature.State -ne "Enabled") { Write-Info "启用 WSL 功能..." Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart } if ($vmFeature.State -ne "Enabled") { Write-Info "启用虚拟机平台..." Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart } # 更新 WSL 内核 Write-Info "更新 WSL2 内核..." wsl --update wsl --set-default-version 2 Write-Ok "WSL2 配置完成" # ── Step 2:安装 Ubuntu WSL 发行版 ───────────── Write-Info "Step 2/4:检查 Ubuntu WSL..." $wslList = wsl --list --quiet 2>$null if ($wslList -notmatch "Ubuntu") { Write-Info "安装 Ubuntu 22.04..." wsl --install -d Ubuntu-22.04 Write-Ok "Ubuntu 22.04 安装完成(首次运行需要设置用户名和密码)" } else { Write-Ok "Ubuntu WSL 已安装" wsl --list --verbose } # ── Step 3:安装 Docker Desktop ──────────────── Write-Info "Step 3/4:检查 Docker Desktop..." $dockerCmd = Get-Command docker -ErrorAction SilentlyContinue if ($dockerCmd) { Write-Ok "Docker 已安装:$(docker --version)" } else { # 尝试用 winget 安装 $winget = Get-Command winget -ErrorAction SilentlyContinue if ($winget) { Write-Info "通过 winget 安装 Docker Desktop..." winget install -e --id Docker.DockerDesktop --accept-package-agreements --accept-source-agreements Write-Ok "Docker Desktop 安装完成" } else { Write-Warn "未找到 winget,请手动安装 Docker Desktop:" Write-Warn "下载地址:https://www.docker.com/products/docker-desktop/" Write-Warn "安装时勾选:Use WSL 2 instead of Hyper-V" Start-Process "https://www.docker.com/products/docker-desktop/" Read-Host "安装完成后按 Enter 继续" } } # ── Step 4:配置 Docker Desktop WSL 集成 ─────── Write-Info "Step 4/4:提示 Docker Desktop 配置..." Write-Warn "" Write-Warn "请确认 Docker Desktop 已进行以下配置:" Write-Warn " 1. Settings → General → 勾选 'Use WSL 2 based engine'" Write-Warn " 2. Settings → Resources → WSL Integration → 开启 Ubuntu-22.04" Write-Warn " 3. 如有 NVIDIA GPU:" Write-Warn " Settings → General → 勾选 'Use GPU with WSL 2'" Write-Warn "" # ── 验证 ─────────────────────────────────────── Write-Info "验证安装..." try { $dockerVer = docker --version $composeVer = docker compose version Write-Ok "Docker: $dockerVer" Write-Ok "Compose: $composeVer" } catch { Write-Warn "Docker 命令不可用,可能需要重启后再验证" Write-Warn "重启后运行:docker run hello-world" } Write-Host "" Write-Host "============================================" -ForegroundColor Green Write-Host " 安装完成!" -ForegroundColor Green Write-Host "============================================" -ForegroundColor Green Write-Host "" Write-Host "后续步骤(在 WSL2 Ubuntu 中执行):" -ForegroundColor Yellow Write-Host " 1. 打开 Ubuntu WSL 终端" Write-Host " 2. cd /mnt/c/Projects/AIProjects/AIRegulations/Depolyment" Write-Host " 3. bash scripts/01_setup_project.sh" Write-Host "" Write-Host "如需重启系统请现在重启,然后继续操作。" -ForegroundColor Yellow