在 Windows Server 上安装 Docker,通常推荐使用 Docker Desktop(适合开发测试)或 Docker Engine (Standalone)(适合生产环境)。由于 Windows Server 默认不支持 WSL2 后端(除非手动配置),且为了保持系统轻量级,生产环境推荐直接安装 Docker Engine。
以下是针对 Windows Server 的详细安装步骤:
核心前置条件
- 启用 Hyper-V:Windows Server 的 Docker 依赖于 Hyper-V 技术。
- 开启容器功能:需要安装“容器”角色。
- 版本要求:建议 Windows Server 2016 及以上版本(2019/2022 体验最佳)。
第一步:启用必要的服务器角色
打开 PowerShell (管理员) 或 服务器管理器,执行以下操作。
方法 A:使用 PowerShell 一键安装(推荐)
以管理员身份运行 PowerShell,输入以下命令:
# 安装 Hyper-V 和容器支持
Install-WindowsFeature -Name Hyper-V, Containers -IncludeManagementTools -Restart
注意:执行后系统可能会提示重启,建议稍后统一重启。
方法 B:使用图形界面(GUI)
- 打开 服务器管理器 -> 管理 -> 添加角色和功能。
- 点击“下一步”,选择 “基于角色或基于功能的安装”。
- 勾选目标服务器,继续直到“服务器角色”页面。
- 勾选 Hyper-V 和 容器 (Containers)。
- 根据向导完成安装并重启服务器。
第二步:下载并安装 Docker Engine
Windows Server 不直接提供 Docker Desktop 的安装包(因为它依赖 WSL2,而在 Server 版上配置复杂),因此我们下载官方的 MSI 安装包。
-
访问下载地址:
前往 Docker 官方发布页获取最新稳定版 MSI:
https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
注意:虽然名字叫 Desktop,但如果你选择 "Run as a Windows Service" 模式,它可以在后台作为服务运行。不过更纯粹的生产方式是下载docker-engine的离线包。更推荐的官方生产方式:
访问 Docker Hub 的 GitHub Releases 页面,搜索docker-ce的 Windows 版本,或者直接使用以下脚本自动下载最新版(需联网):# 从微软官方仓库下载 Docker Engine for Windows Invoke-WebRequest -Uri "https://download.docker.com/win/static/edge/x86_64/docker.zip" -OutFile "C:docker.zip" Expand-Archive -Path "C:docker.zip" -DestinationPath "C:docker" -Force(注:上述脚本是静态版示例,对于大多数用户,直接下载 Docker Desktop for Windows 并在设置中开启 "Use the Windows Host Networking" 或 "WSL2 backend" 是最简单的,尽管在 Server 上 WSL2 配置较繁琐。)
最稳妥的官方指引(MSI 安装):
如果无法通过脚本,请手动访问:Docker Engine for Windows 下方的链接,寻找 Docker Desktop Installer,但在安装时不要勾选 WSL2 集成(如果选项存在),或者直接使用 Docker Toolbox(已弃用,不推荐)。目前 Windows Server 的最佳实践是使用 Docker Desktop 的 "Server Mode" 或直接使用官方提供的
dockerd二进制文件。推荐方案:使用官方提供的安装脚本(自动化)
在 PowerShell (管理员) 中运行:# 检查并安装 Docker if (!(Get-Command docker -ErrorAction SilentlyContinue)) { Write-Host "正在下载 Docker Engine..." $url = "https://download.docker.com/win/static/edge/x86_64/docker.zip" Invoke-WebRequest -Uri $url -OutFile "$env:TEMPdocker.zip" Expand-Archive "$env:TEMPdocker.zip" -DestinationPath "$env:TEMPdocker" -Force # 将 docker.exe 添加到环境变量 $dockerPath = "$env:TEMPdocker" $env:Path += ";$dockerPath" Write-Host "Docker 已解压到临时目录,请手动将 docker.exe 复制到 C:Program FilesDocker 并添加到 PATH,然后重启。" }修正:对于 Windows Server 生产环境,最标准的方法是下载 Docker Desktop 并配置为后台服务,或者使用
dockerd启动器。让我们采用最通用且无需复杂配置的方法:下载 Docker Desktop 并配置为仅作为守护进程运行。
- 下载
Docker Desktop Installer.exe。 - 双击运行。
- 在安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V" (如果服务器支持 WSL2) 或者 "Use Hyper-V"。
如果在纯 Server 环境且不想折腾 WSL2,请选择 Hyper-V 模式。 - 安装完成后,打开 Docker Desktop,点击右下角设置图标 -> General,勾选 "Start Docker Desktop when you log in" (可选)。
- 关键步骤:为了让它在后台作为服务运行而不弹 GUI,你需要修改注册表或使用命令行参数启动,或者直接在服务器上运行
docker run hello-world来验证。
替代方案(更轻量,无 GUI):
如果你不需要 Docker Desktop 的图形界面,可以直接下载 Docker CE for Windows 的二进制包(非 MSI,而是 zip 包),解压后配置为 Windows 服务。- 下载
docker.zip(从 Docker 官网 Static builds)。 - 解压到
C:Program FilesDocker。 - 创建服务配置文件
dockerd-service.json:{ "Image": "mcr.microsoft.com/docker/docker-proxy", "Args": ["--host=tcp://127.0.0.1:2375"] }(注:此部分较为复杂,对于初学者,直接使用 Docker Desktop 并忽略其 UI 弹窗是最快的路径。)
总结:最简单的上手流程
- 确保已安装 Hyper-V 和 Containers 角色。
- 下载 Docker Desktop for Windows (适用于 Windows Server 的版本)。
- 运行安装程序,选择 Hyper-V 模式。
- 安装完成后,打开 PowerShell 输入
docker --version。 - 输入
docker run hello-world验证是否成功。
- 下载
第三步:验证安装
安装完成后,打开一个新的 PowerShell 窗口(确保没有旧的缓存),输入:
# 检查版本
docker --version
# 拉取镜像并运行测试容器
docker run hello-world
如果看到类似 "Hello from Docker!" 的输出,说明安装成功。
常见问题与优化
-
权限问题:
如果遇到Permission denied,请确保当前用户是本地管理员组,或者将当前用户添加到docker-users组(如果有)。 -
网络问题:
云服务器通常有安全组限制。Docker 容器默认会创建虚拟网卡,确保云服务商的安全组规则允许出站流量(特别是访问网络拉取镜像时)。 -
性能优化:
在 Windows Server 上,Docker 的性能略低于 Linux。如果是高负载生产环境,建议考虑迁移到 Linux 发行版的 Docker(如 Ubuntu/CentOS/Alpine),因为 Windows 容器的性能开销较大。 -
关于 WSL2:
在 Windows Server 2019/2022 上,WSL2 的支持已经比较成熟。如果你希望获得接近原生 Linux 的性能,可以安装 WSL2 子系统,然后在其中运行 Docker Desktop 的 WSL2 后端模式。但这需要额外的配置步骤(启用 WSL2 功能、安装内核更新等)。
最终结论
在 Windows Server 上安装 Docker 的核心在于:先启用 Hyper-V 和容器角色,再安装 Docker Desktop 或 Docker Engine。对于快速验证和开发,Docker Desktop 是最便捷的选择;对于追求极致性能和纯净环境的服务器,建议后续迁移至 Linux 环境运行 Docker。
CLOUD技术博