在腾讯云的 Windows Server 2016 上安装 Docker,需要特别注意:Docker 在 Windows Server 2016 上支持的是 Docker EE(企业版),且仅支持基于 Windows 容器(Windows Containers),不支持 Linux 容器(除非使用 Hyper-V 隔离和特殊配置)。
以下是详细的安装步骤:
✅ 前提条件
-
操作系统版本:
- Windows Server 2016(必须是 64 位)
- 推荐安装最新补丁(如累积更新 KB4566424 等)
-
启用容器功能:
Install-WindowsFeature -Name Containers安装完成后需重启服务器。
-
以管理员身份运行 PowerShell
🛠️ 步骤一:安装容器功能
# 启用容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
🛠️ 步骤二:安装 Docker Engine(Docker EE)
注意:从 Docker 官方已不再为 Windows 提供独立的 Docker EE 下载。推荐使用 Microsoft 和 Docker 合作发布的 Docker 安装方式,或使用
Microsoft's Docker Provider。
方法一:使用 OneGet 安装 Docker(推荐)
# 安装 PowerShell PackageManagement 模块(如果未安装)
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 从 Microsoft 官方源安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
这会自动下载并安装 Docker EE 的稳定版本。
🔄 步骤三:重启系统
Restart-Computer -Force
✅ 步骤四:验证安装
重启后,打开 PowerShell,运行:
# 查看 Docker 版本
docker --version
# 查看 Docker 信息
docker info
你应该能看到类似输出:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.9
...
🧩 可选:设置 Docker 开机自启
Set-Service docker -StartupType Automatic
🐳 测试运行一个 Windows 容器
# 拉取一个 Nano Server 镜像(微软官方轻量镜像)
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2016
# 运行容器
docker run mcr.microsoft.com/windows/nanoserver:ltsc2016 echo "Hello from Docker on Windows Server 2016!"
⚠️ 注意:镜像标签要与主机 OS 版本兼容。Windows Server 2016 只能运行
ltsc2016或1607版本的容器镜像。
❗ 常见问题及注意事项
| 问题 | 解决方案 |
|---|---|
| 镜像拉取失败 | 确保网络正常,使用 mcr.microsoft.com 而非 docker.io |
| 版本不兼容 | Windows 容器必须与宿主系统版本一致(如 2016 对应 ltsc2016) |
| Docker 服务无法启动 | 检查是否已启用 Containers 功能并重启 |
| 不支持 Linux 容器 | Windows Server 2016 默认不支持 Linux 容器,如需支持需升级到 Win Server 2019+ 并启用 WSL2/Hyper-V |
🔁 升级 Docker
# 检查更新
Update-Package -Name docker -ProviderName DockerMsftProvider
# 重启服务
Restart-Service docker
✅ 总结
在腾讯云 Windows Server 2016 上安装 Docker 的关键步骤:
- 启用
Containers功能 - 使用
DockerMsftProvider安装 Docker EE - 重启系统
- 验证并运行测试容器
📌 建议:
由于 Windows Server 2016 已较旧,Docker 支持有限,建议考虑升级到 Windows Server 2019 或 2022 以获得更好的容器支持和安全性。
如有更多需求(如部署 ASP.NET 应用、使用 Docker Compose 等),可继续提问!
ECLOUD博客