奋斗
努力

WINDOWS SERVER 2025安装WSL及DOCKER?

云计算

在 Windows Server 2025 上安装 WSL (Windows Subsystem for Linux) 和 Docker 是一个标准的容器化开发环境搭建流程。由于 Server 2025 是基于较新的内核构建的,其兼容性非常好,但需要注意启用虚拟化功能以及选择正确的 Docker 后端模式

以下是详细的操作步骤:

⚠️ 前置检查与准备

在执行任何安装命令之前,请确保满足以下条件:

  1. 系统版本:必须是 Windows Server 2025(或 2022/2019),且已安装最新的累积更新。
  2. 虚拟化支持:BIOS/UEFI 中必须开启 VT-x/AMD-V 虚拟化技术。
  3. 管理员权限:所有操作需在以管理员身份运行的 PowerShell 或 CMD 中进行。
  4. 推荐模式:在服务器版上,Docker 通常推荐使用 WSL 2 后端(性能更好,兼容性强),而不是传统的 Hyper-V 后端(虽然 Server 也支持,但在本地开发场景中 WSL 2 更流畅)。

第一步:启用 WSL 功能并安装默认发行版

Windows Server 2025 已经内置了 WSL 2 的内核组件,我们只需启用相关功能即可。

  1. 打开 PowerShell (管理员)

  2. 运行以下命令启用必要的组件:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  3. 重启计算机。这是关键步骤,因为 VirtualMachinePlatform 需要重启才能生效。

  4. 重启后,再次打开 PowerShell (管理员),设置默认使用 WSL 2 内核:

    wsl --set-default-version 2
  5. 安装 Linux 发行版(以 Ubuntu 为例,你也可以选择其他):

    • 方法 A(推荐):如果 Microsoft Store 可用,直接搜索 "Ubuntu" 安装。
    • 方法 B(命令行):如果没有网络商店,可以下载 .appx 包安装,或者直接使用以下命令(需联网):
      wsl --install -d Ubuntu

      注:如果是纯服务器环境无图形界面,可能需要先配置 wsl --list --verbose 查看状态,然后手动挂载 ISO 或从官网下载 tar 包解压到指定目录。

  6. 启动 Ubuntu 并创建用户名和密码:

    wsl
    # 进入 Linux 环境后,按提示设置用户名和密码

第二步:安装 Docker Engine (Linux 版)

在 WSL 2 环境中,Docker 实际上是在 Linux 子系统内部运行的,因此我们需要在 WSL 终端内 安装 Docker,而不是在 Windows 宿主机的 PowerShell 中安装。

  1. 进入 WSL 终端(例如输入 wsl 或点击开始菜单中的 Ubuntu)。
  2. 更新软件源并安装依赖:
    sudo apt update
    sudo apt install -y ca-certificates curl gnupg lsb-release
  3. 添加 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
  4. 安装 Docker Engine, CLI, 和 Containerd:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  5. 验证安装
    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 配置文件 (推荐用于生产/长期运行)

  1. 在 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)。

  2. 重启 Docker 服务:

    sudo systemctl restart docker
  3. 在 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:

  1. 在 Windows 宿主机下载安装 Docker Desktop for Windows
  2. 在安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V"
  3. 启动 Docker Desktop。它会自动检测你安装的 WSL 发行版(Ubuntu),并将 Docker 引擎集成进去。
  4. 此时,你可以在 Windows 的 PowerShell 中直接运行 docker 命令,它们会自动路由到 WSL 2 中的 Linux 环境。

第四步:常见问题与优化建议

  1. 权限问题
    如果在 WSL 中运行 Docker 报错 permission denied,可以将当前用户加入 docker 组:

    sudo usermod -aG docker $USER
    # 注销并重新登录 WSL 会话使组更改生效
  2. 资源限制
    Windows Server 的资源管理较为严格。如果容器启动慢或崩溃,可以在 WSL 的 %UserProfile%.wslconfig 文件中限制内存和 CPU:

    [wsl2]
    memory=8GB
    processors=4
    swap=2GB
  3. WSL 更新
    偶尔需要更新 WSL 内核以确保稳定性:

    wsl --update

总结

在 Windows Server 2025 上部署该环境的最佳实践路径是:

  1. 启用 VirtualMachinePlatform 并设置默认版本为 WSL 2
  2. WSL 2 内部 安装 Docker Engine(而非在 Windows 层安装)。
  3. 对于开发调试,推荐使用 Docker Desktop for Windows 配合 WSL 2 后端,以获得最好的图形体验和无缝的 CLI 交互;对于纯后台服务,则直接在 WSL 内配置 Docker Daemon 并通过 TCP 暴露服务。
未经允许不得转载:云服务器 » WINDOWS SERVER 2025安装WSL及DOCKER?