在 Windows Server 2025 上安装 WSL (Windows Subsystem for Linux) 和 Docker 是一个标准的容器化开发环境搭建流程。由于 Server 2025 是基于较新的内核构建的,其兼容性非常好,但需要注意启用虚拟化功能以及选择正确的 Docker 后端模式。
以下是详细的操作步骤:
⚠️ 前置检查与准备
在执行任何安装命令之前,请确保满足以下条件:
- 系统版本:必须是 Windows Server 2025(或 2022/2019),且已安装最新的累积更新。
- 虚拟化支持:BIOS/UEFI 中必须开启 VT-x/AMD-V 虚拟化技术。
- 管理员权限:所有操作需在以管理员身份运行的 PowerShell 或 CMD 中进行。
- 推荐模式:在服务器版上,Docker 通常推荐使用 WSL 2 后端(性能更好,兼容性强),而不是传统的 Hyper-V 后端(虽然 Server 也支持,但在本地开发场景中 WSL 2 更流畅)。
第一步:启用 WSL 功能并安装默认发行版
Windows Server 2025 已经内置了 WSL 2 的内核组件,我们只需启用相关功能即可。
-
打开 PowerShell (管理员)。
-
运行以下命令启用必要的组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart -
重启计算机。这是关键步骤,因为 VirtualMachinePlatform 需要重启才能生效。
-
重启后,再次打开 PowerShell (管理员),设置默认使用 WSL 2 内核:
wsl --set-default-version 2 -
安装 Linux 发行版(以 Ubuntu 为例,你也可以选择其他):
- 方法 A(推荐):如果 Microsoft Store 可用,直接搜索 "Ubuntu" 安装。
- 方法 B(命令行):如果没有网络商店,可以下载
.appx包安装,或者直接使用以下命令(需联网):wsl --install -d Ubuntu注:如果是纯服务器环境无图形界面,可能需要先配置
wsl --list --verbose查看状态,然后手动挂载 ISO 或从官网下载 tar 包解压到指定目录。
-
启动 Ubuntu 并创建用户名和密码:
wsl # 进入 Linux 环境后,按提示设置用户名和密码
第二步:安装 Docker Engine (Linux 版)
在 WSL 2 环境中,Docker 实际上是在 Linux 子系统内部运行的,因此我们需要在 WSL 终端内 安装 Docker,而不是在 Windows 宿主机的 PowerShell 中安装。
- 进入 WSL 终端(例如输入
wsl或点击开始菜单中的 Ubuntu)。 - 更新软件源并安装依赖:
sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release -
添加 Docker 官方 GPG 密钥和仓库:
# 创建 keyrings 目录 sudo install -m 0755 -d /etc/apt/keyrings # 下载并添加密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置权限 sudo chmod a+r /etc/apt/keyrings/docker.gpg # 添加仓库源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装 Docker Engine, CLI, 和 Containerd:
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - 验证安装:
docker run hello-world如果看到欢迎信息,说明安装成功。
第三步:配置 Docker 以便 Windows 主机访问
默认情况下,Docker 守护进程只监听 Unix Socket (/var/run/docker.sock)。为了让 Windows 宿主机上的工具(如 VS Code、Docker Desktop for Windows 或其他应用)能调用 WSL 中的 Docker,我们需要配置 Docker 监听 TCP 端口。
方案 A:修改 Docker 配置文件 (推荐用于生产/长期运行)
-
在 WSL 终端中编辑
/etc/docker/daemon.json:sudo nano /etc/docker/daemon.json添加以下内容(允许远程连接,注意:生产环境务必配置防火墙和认证):
{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }保存并退出 (Ctrl+O, Enter, Ctrl+X)。
-
重启 Docker 服务:
sudo systemctl restart docker -
在 Windows 主机上测试:
打开 Windows PowerShell,设置环境变量指向 WSL 的 socket 或 TCP 地址:# 方式 1:通过 TCP 连接 (如果上面配置了 2375) $env:DOCKER_HOST="tcp://localhost:2375" # 方式 2:通过 WSL 管道 (更稳定,无需改 daemon.json) # 这需要安装 docker cli 在 Windows 上,并配置它连接到 WSL
方案 B:使用 Docker Desktop for Windows (混合模式)
如果你希望拥有图形化管理界面,并且不想手动配置 TCP:
- 在 Windows 宿主机下载安装 Docker Desktop for Windows。
- 在安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V"。
- 启动 Docker Desktop。它会自动检测你安装的 WSL 发行版(Ubuntu),并将 Docker 引擎集成进去。
- 此时,你可以在 Windows 的 PowerShell 中直接运行
docker命令,它们会自动路由到 WSL 2 中的 Linux 环境。
第四步:常见问题与优化建议
-
权限问题:
如果在 WSL 中运行 Docker 报错permission denied,可以将当前用户加入 docker 组:sudo usermod -aG docker $USER # 注销并重新登录 WSL 会话使组更改生效 -
资源限制:
Windows Server 的资源管理较为严格。如果容器启动慢或崩溃,可以在 WSL 的%UserProfile%.wslconfig文件中限制内存和 CPU:[wsl2] memory=8GB processors=4 swap=2GB -
WSL 更新:
偶尔需要更新 WSL 内核以确保稳定性:wsl --update
总结
在 Windows Server 2025 上部署该环境的最佳实践路径是:
- 启用 VirtualMachinePlatform 并设置默认版本为 WSL 2。
- 在 WSL 2 内部 安装 Docker Engine(而非在 Windows 层安装)。
- 对于开发调试,推荐使用 Docker Desktop for Windows 配合 WSL 2 后端,以获得最好的图形体验和无缝的 CLI 交互;对于纯后台服务,则直接在 WSL 内配置 Docker Daemon 并通过 TCP 暴露服务。
云服务器