在腾讯云Windows Server 2022实例上如何安装和配置Docker?

在腾讯云 Windows Server 2022 实例上部署 Docker,目前最稳定、官方推荐且无需额外依赖(如 WSL2 或 Linux 内核兼容层)的方式是使用 Docker Desktop for Windows 配合 Windows Containers。

虽然 Docker 官方已宣布逐步弃用对原生 Windows 容器支持(转向 WSL2 backend),但在 Windows Server 2022 这种纯服务器场景下,若必须运行 Windows 容器镜像(.NET Framework 应用等),仍需通过特定方式配置。以下是基于腾讯云 CVM 环境的完整实操指南。


⚠️ 重要前提说明

  1. Windows 容器 vs Linux 容器:

    • 如果你需要运行的是 Linux 容器(绝大多数开源项目、Node.js、Python、Java 微服务等),强烈建议直接使用 WSL2 + Docker Desktop 或迁移到 Linux 系统(Ubuntu/CentOS)。这是主流做法。
    • 如果你必须运行 Windows 容器(如 IIS、ASP.NET Framework、SQL Server on Windows),则按以下步骤操作。
  2. 腾讯云环境注意事项:

    • 确保你的实例规格支持嵌套虚拟化(部分轻量应用服务器可能受限,CVM 通常没问题)。
    • 关闭防火墙中不必要的端口限制,避免 Docker 内部网络通信受阻。
    • 建议使用管理员权限 PowerShell 执行以下命令。

✅ 方案一:安装 Docker Desktop for Windows(推荐用于开发/测试)

这是最简单的方式,适用于大多数非生产核心负载场景。

步骤 1:启用 Windows 容器功能

以管理员身份打开 PowerShell,运行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All

注意:此操作可能需要重启服务器。请提前保存数据并计划维护窗口。

重启后再次登录。

步骤 2:下载并安装 Docker Desktop

  1. 访问 Docker Desktop 官网 下载最新 .exe 安装包。
  2. 安装时勾选 “Use Windows containers instead of WSL 2”(关键!)。
  3. 完成安装后启动 Docker Desktop。

步骤 3:切换为 Windows 容器模式

  1. 右键点击系统托盘中的 Docker 图标 → Settings。
  2. General 标签页中,确认选中 “Windows containers”。
  3. 点击 Apply & Restart。

步骤 4:验证安装

打开 PowerShell,运行:

docker version
docker run hello-world

如果输出成功信息,说明 Windows 容器引擎已正常工作。


✅ 方案二:仅安装 Docker Engine(无 GUI,适合生产环境)

如果你不想安装 Docker Desktop(资源占用高、有 GUI),可以手动安装 Docker Engine for Windows。但请注意:微软已停止对原生 Windows 容器的主动开发支持,社区版引擎安装较为复杂,且版本较旧。

步骤 1:启用容器功能(同上)

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All

重启服务器。

步骤 2:安装 Docker Engine

由于官方不再提供独立的 Windows 容器引擎 MSI 包,推荐使用 Chocolatey 或从 GitHub Releases 获取预编译包。

方法 A:使用 Chocolatey(推荐)

  1. 安装 Chocolatey:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  2. 安装 Docker Engine:

    choco install docker-engine --version=20.10.21

    注:版本号可根据 GitHub Releases 选择最新稳定版。

  3. 启动服务:

    Start-Service docker
    Set-Service -Name docker -StartupType 'Automatic'
  4. 验证:

    docker info

方法 B:手动下载安装包

  1. 前往 Moby GitHub Releases 下载 docker-ce.msi 和 containerd.msi。
  2. 依次安装 containerd 和 docker engine。
  3. 配置环境变量 %ProgramFiles%Dockerbin 加入 PATH。
  4. 启动 Docker 服务。

🛡️ 腾讯云特有优化建议

1. 安全组配置

确保腾讯云控制台的安全组规则允许外部访问你发布的容器端口(如 80, 443, 8080 等)。

2. 磁盘性能

Windows 容器镜像较大,I/O 密集型操作多。建议使用 云硬盘 SSD 而非 HDD,并在实例设置中开启高性能模式(如有)。

3. 自动启动与持久化

  • Docker 服务应设置为“自动”启动。
  • 容器数据卷(Volume)建议挂载到独立盘符(如 D:data),避免系统盘空间不足导致实例异常。

4. 监控与日志

  • 使用腾讯云云监控(Cloud Monitor)添加自定义指标,监控 CPU、内存、磁盘 IO。
  • 将 Docker 日志轮转配置合理,防止 /var/lib/docker 或 %ProgramData%Docker 撑爆系统盘。

❗ 常见错误及排查

错误现象 可能原因 解决方案
Cannot connect to the Docker daemon Docker 服务未启动 运行 Start-Service docker
error during connect: ... connection refused 防火墙阻止了本地回环通信 检查 Windows Defender 防火墙是否允许 Docker 进程
hyper-v is not enabled 未启用 Hyper-V 角色 运行 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
insufficient privileges 非管理员运行 始终以 Administrator 身份运行 PowerShell
WSL2 backend selected but no WSL2 Docker Desktop 默认启用 WSL2 在 Docker Desktop 设置中切换为 “Windows containers”

🔮 长期建议

尽管上述方法可行,但考虑到:

  • 微软已明确将重心转向 WSL2 + Linux 容器;
  • Windows 容器生态逐渐萎缩;
  • 腾讯云也主推 Linux 实例(Ubuntu/CentOS/Debian)作为主力运维对象;

强烈建议在新项目中优先使用 Linux 容器。 如果必须使用 Windows Server,可考虑:

  • 使用 Azure Container Instances 或 AWS ECS 托管 Windows 容器任务;
  • 或在腾讯云 CVM 上使用 Kubernetes (TKE) 部署混合集群,其中节点池包含少量 Windows 节点用于兼容遗留系统。

如需进一步协助(如 Docker Compose 编写、Nginx 反向X_X配置、SSL 证书集成等),欢迎继续提问。

未经允许不得转载:CLOUD云枢 » 在腾讯云Windows Server 2022实例上如何安装和配置Docker?