在腾讯云 Windows 系统服务器(即 Windows Server,如 Windows Server 2019/2022)上安装和配置 Docker,不能直接安装原生 Linux 版 Docker Engine,因为 Windows Server 的容器运行时与 Linux 不同。你需要根据实际需求选择以下两种主流方案之一:
✅ 推荐方案:使用 Windows 容器(Windows Server Containers / Hyper-V Containers)
适用于运行 .NET Framework、IIS、SQL Server on Windows 等 Windows 原生应用。
❌ 不推荐/不支持:在 Windows Server 上安装 docker-ce(Linux版),或试图用 WSL2 运行 Docker(WSL2 在 Windows Server 上默认不可用且非生产推荐)。
✅ 正确路径:在 Windows Server 上启用并配置 Docker for Windows Server(即 Moby + Windows Container Runtime)
⚠️ 注意:从 Docker Desktop 4.3+ 起,Docker Desktop 已不再支持 Windows Server(仅支持 Windows 10/11 Pro/Enterprise)。
因此,Windows Server 必须使用 原生 Windows 容器运行时 + Docker CLI + Moby 引擎(由 Microsoft 和 Docker 共同维护的 Windows Server 版本)。
📌 前提条件(腾讯云 Windows Server 实例)
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows Server 2019 或 Windows Server 2022(64位,已打最新补丁) |
| 虚拟化支持 | ✅ BIOS 中已启用 Hyper-V(若需 Hyper-V 隔离容器)或 Windows 容器服务(进程隔离即可) ⚠️ 腾讯云 CVM 默认不启用 Hyper-V,需手动开启(见下文) |
| 管理员权限 | 以 Administrator 运行 PowerShell |
| 网络 | 可访问公网(下载镜像、安装包)或已配置内网镜像源 |
🔧 步骤 1:启用 Windows 容器功能(含 Hyper-V,如需隔离)
💡 Windows Server 容器支持两种隔离模式:
- Process Isolation(进程隔离):轻量、快速,但共享内核 → 默认推荐
- Hyper-V Isolation(Hyper-V 隔离):更强安全性,每个容器独占轻量 VM → 需启用 Hyper-V
✅ 启用容器 + Hyper-V(推荐双启,兼容性更好):
# 以【管理员身份】打开 PowerShell
# 1. 启用容器功能(必选)
Enable-WindowsOptionalFeature -Online -FeatureName containers -All -NoRestart
# 2. 启用 Hyper-V(如需 Hyper-V 隔离,或运行 Linux 容器(需 WSL2,但 Server 不推荐))
# ⚠️ 注意:腾讯云 CVM 是 KVM/Xen 虚拟机,**嵌套虚拟化默认关闭!**
# 👉 必须先在腾讯云控制台【实例配置】中开启「嵌套虚拟化」(仅部分机型支持,如 S5、SA3、CVM 类型为「标准型 S5/S6」「计算型 C5/C6」等,且需关机操作)
# 若已开启嵌套虚拟化,再执行:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
# 3. 重启服务器(必须!)
Restart-Computer -Force
🔍 如何确认腾讯云是否支持嵌套虚拟化?
- 登录 腾讯云控制台 → 找到实例 → 【更多】→ 【配置修改】→ 查看「嵌套虚拟化」开关(灰色=不支持该机型;可选=支持)
- 支持机型参考:腾讯云嵌套虚拟化文档
🐳 步骤 2:安装 Docker Engine(Windows Server 版)
Microsoft 维护官方 Docker EE(Enterprise Edition)适配 Windows Server,但自 2021 年起已整合进 Moby 项目,推荐使用社区维护的稳定安装脚本:
✅ 推荐方式:使用官方 PowerShell 安装脚本(Microsoft 官方支持)
# 管理员 PowerShell 中执行:
# 1. 下载并运行 Docker 官方安装脚本(适用于 Windows Server)
Invoke-WebRequest "https://raw.githubusercontent.com/moby/moby/master/contrib/install.ps1" -OutFile "$env:TEMPinstall-docker.ps1"
& "$env:TEMPinstall-docker.ps1"
# ✅ 该脚本会:
# - 下载最新稳定版 dockerd.exe(Moby 引擎)
# - 安装为 Windows Service(dockerd)
# - 配置默认 daemon.json(位于 C:ProgramDatadockerconfigdaemon.json)
# - 添加 docker CLI 到 PATH
✅ 脚本来源:Moby GitHub install.ps1(安全、无第三方依赖)
✅ 验证安装:
# 查看 Docker 版本
docker version
# 查看系统信息(应显示 "OS: windows", "Architecture: x86_64")
docker info
# 运行 Hello World(Windows Nano Server 镜像)
docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container!"
💡 首次拉取 Windows 镜像可能较慢(镜像体积大),建议使用国内镜像提速(见步骤 4)
🌐 步骤 3:配置 Docker Daemon(可选但强烈推荐)
编辑配置文件:C:ProgramDatadockerconfigdaemon.json
(若不存在,可新建)
✅ 示例配置(含镜像提速、日志限制、存储驱动):
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com", // ✅ 腾讯云官方镜像站(推荐)
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "windowsfilter",
"exec-opts": ["native.cgroupdriver=systemd"]
}
✅ 重启 Docker 服务生效:
Restart-Service docker
🐋 步骤 4:拉取 & 运行常用 Windows 镜像(验证)
# 1. 拉取 Windows Server Core 镜像(适合 .NET Framework 应用)
docker pull mcr.microsoft.com/windows/servercore:ltsc2022
# 2. 拉取 Nano Server(更轻量,适合 .NET Core / Go)
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
# 3. 运行 IIS 容器(示例)
docker run -d -p 8080:80 --name myiis mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
# 访问 http://<你的CVM公网IP>:8080 查看 IIS 默认页
📌 注意镜像标签:
ltsc2022= Long-Term Servicing Channel 2022(稳定、推荐)22H2/23H2= Semi-Annual Channel(更新快,但生命周期短,不建议生产)
🔐 补充:安全与生产建议(腾讯云环境)
| 项目 | 建议 |
|---|---|
| 防火墙 | 开放容器端口(如 8080)→ 腾讯云【安全组】中添加入站规则 |
| 磁盘空间 | Windows 容器镜像较大(1~5GB),建议系统盘 ≥ 100GB,或挂载数据盘到 C:ProgramDatadocker |
| 自动启动 | dockerd 服务默认设为自动启动,无需额外配置 |
| 镜像源 | 务必配置 registry-mirrors(腾讯云镜像站最快) |
| 更新策略 | 定期 docker pull 更新基础镜像;Docker 引擎通过重新运行 install.ps1 升级 |
❌ 常见误区与避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
docker: command not found |
PATH 未刷新或安装失败 | 重启 PowerShell,或手动将 C:Program FilesDocker 加入系统 PATH |
Error response from daemon: hcsshim::CreateComputeSystem failed |
未启用容器功能 / Hyper-V / 或嵌套虚拟化未开 | 严格按步骤启用并重启 |
no matching manifest for windows/amd64 |
尝试拉取 Linux 镜像(如 nginx:alpine) |
✅ Windows 容器只能运行 Windows 镜像(mcr.microsoft.com/...) |
The container operating system does not match the host operating system |
主机是 2022,却拉了 ltsc2019 镜像 |
使用 docker info 查看 OSType 和 Server Version,匹配镜像标签 |
dockerd service fails to start |
防火墙/杀软拦截、端口占用、daemon.json 语法错误 | 查看日志:Get-EventLog -LogName Application -Source Docker -Newest 20 |
✅ 总结:腾讯云 Windows Server 上 Docker 正确姿势
| 步骤 | 操作 |
|---|---|
| ✅ 1. 准备环境 | Windows Server 2019/2022 + 开启嵌套虚拟化(如需 Hyper-V)+ 启用 containers 和 Hyper-V 功能 |
| ✅ 2. 安装引擎 | 运行官方 install.ps1 安装 Moby/dockerd(非 Docker Desktop) |
| ✅ 3. 配置提速 | 设置 registry-mirrors 为 https://mirror.ccs.tencentyun.com |
| ✅ 4. 运行验证 | docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo OK |
| ✅ 5. 生产就绪 | 配置安全组、监控磁盘、定期更新镜像与引擎 |
需要我为你生成:
- ✅ 一键安装脚本(含嵌套虚拟化检查 + 自动重启 + 镜像提速配置)
- ✅ 部署 ASP.NET Core Web API 的完整 Dockerfile + docker-compose.yml 示例
- ✅ 腾讯云镜像仓库(TCR)私有镜像推送/拉取教程
欢迎随时告诉我 👇 我可立即为你定制提供!
云小栈