在 Windows Server 上“安装 Docker 部署 Linux"通常有两种理解,这两种方式的技术实现完全不同。请根据你的具体需求选择:
- 场景 A(最常见): 你想在 Windows Server 的 Docker 环境中运行Linux 容器(例如运行 Nginx、MySQL 等 Linux 应用)。
- 场景 B: 你想把整个 Windows Server 变成一个宿主机,然后在上面运行一个完整的Linux 虚拟机(VM),而不是容器。
以下是针对这两种场景的详细操作指南:
场景 A:在 Windows Server 上运行 Linux 容器 (Docker Desktop / WSL2)
如果你只是想在 Windows 上跑 Linux 的应用程序,这是最高效的方式。Windows Server 本身支持两种模式:Windows 容器和Linux 容器。要运行 Linux 容器,你需要使用 WSL 2 (Windows Subsystem for Linux) 后端。
前置条件
- Windows Server 版本:建议 Windows Server 2019 或 2022(2016/2017 支持较差)。
- 已启用 Hyper-V 和 WSL 功能。
- 已安装最新的 Docker Desktop for Windows(注意:Docker Desktop 在服务器版系统上通常通过 WSL 2 运行,或者需要配置特定的 Docker Engine 环境)。
操作步骤
-
启用 WSL 2 和 Hyper-V
以管理员身份打开 PowerShell,运行以下命令并重启服务器:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 设置默认版本为 WSL 2 wsl --set-default-version 2 -
安装 Docker Desktop for Windows
- 下载适用于 Windows 的 Docker Desktop 安装包。
- 安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V"(如果使用 WSL 2 后端)。
- 注意:在 Windows Server 上,Docker Desktop 有时可能无法像普通 Win10/11 那样直接作为服务运行。如果安装失败,建议直接使用 Docker Engine (CLI) 配合 WSL 2 发行版。
-
切换到 Linux 镜像模式
在 Docker Desktop 右下角的状态栏图标中,点击切换按钮,从 "Windows Containers" 切换到 "Switch to Linux containers"。- 此时 Docker 会自动拉取一个基于 WSL 2 的 Linux 内核环境。
-
验证与运行
打开终端(PowerShell 或 CMD),输入:docker run hello-world如果看到 "Hello from Docker!",说明成功。现在你可以运行任何 Linux 镜像了:
# 示例:运行一个 Ubuntu 容器 docker run -it ubuntu bash # 示例:运行 Nginx docker run -d -p 80:80 nginx
场景 B:在 Windows Server 上部署完整的 Linux 虚拟机
如果你需要的是一个独立的操作系统环境(拥有自己的内核、文件系统、网络栈,且与 Windows 完全隔离),那么你应该使用 Hyper-V 创建虚拟机,而不是 Docker。Docker 是轻量级容器,不是完整的操作系统虚拟化。
操作步骤
-
启用 Hyper-V 角色
以管理员身份打开 PowerShell:Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart服务器将自动重启。
-
创建虚拟交换机
重启后,打开 Hyper-V 管理器 -> 虚拟交换机管理器 -> 新建“外部”交换机,绑定到物理网卡,允许宿主机共享该网络。 -
下载 Linux ISO
去官网下载你需要的 Linux 发行版 ISO 文件(如 Ubuntu Server, CentOS Stream, Rocky Linux 等)。 -
创建新虚拟机
- 在 Hyper-V 管理器中,右键 -> 新建 -> 虚拟机。
- 按照向导操作:分配内存(建议至少 2GB)、创建虚拟硬盘(VHDX)。
- 在“安装选项”步骤中,选择刚才下载的 Linux ISO 文件作为启动光盘。
- 完成创建后,双击虚拟机并点击“连接”,即可像操作物理机一样安装 Linux。
-
安装 Linux
启动虚拟机,进入传统的 Linux 安装界面,按照提示完成安装。安装完成后,你将拥有一个完全独立的 Linux 服务器。
总结与建议
| 特性 | 场景 A: Docker (Linux 容器) | 场景 B: Hyper-V (Linux 虚拟机) |
|---|---|---|
| 本质 | 进程级隔离,共享 Windows 内核 (通过 WSL2 桥接) | 硬件级虚拟化,拥有独立内核 |
| 启动速度 | 秒级 | 分钟级 |
| 资源占用 | 极低 (MB 级别) | 较高 (GB 级别) |
| 适用场景 | 微服务、Web 应用、CI/CD、开发测试 | 需要完整 OS 权限、特殊内核模块、遗留应用 |
| 推荐程度 | 首选 (如果是为了部署应用) | 次选 (如果是为了模拟完整服务器环境) |
结论:
- 如果你的目的是部署应用程序(如网站、数据库、API),请使用 场景 A (Docker + WSL2)。这是现代云原生架构的标准做法。
- 如果你的目的是搭建一个新的 Linux 服务器实例用于学习、迁移旧系统或需要完全隔离的环境,请使用 场景 B (Hyper-V 虚拟机)。
CLOUD云枢