在 Windows Server 系统上安装 Docker 是可行的,但需要注意以下几点:
✅ 一、支持的 Windows Server 版本
Docker 支持以下版本的 Windows Server(需为 64 位):
- Windows Server 2019
- Windows Server 2022
- Windows Server, version 1809(长期服务频道 LTS)
- Windows Server 2016(部分功能受限)
⚠️ 注意:必须使用 Server Core 或 Desktop Experience 安装模式。
✅ 二、Docker 在 Windows 上的运行方式
在 Windows 上,Docker 可以通过两种方式运行:
-
Windows 容器(推荐用于 Windows Server)
- 原生运行基于 Windows 的容器镜像(如
mcr.microsoft.com/windows/servercore) - 不需要虚拟机
- 适用于部署 .NET Framework / .NET Core 应用等
- 原生运行基于 Windows 的容器镜像(如
-
Linux 容器(通过 WSL2 或 Hyper-V)
- 需要 WSL2 和 Hyper-V 支持
- 在 Windows Server 上不推荐或支持有限
📌 对于 Windows Server,我们通常只使用 Windows 容器 模式。
✅ 三、安装步骤(以 Windows Server 2019/2022 为例)
步骤 1:启用所需功能
以管理员身份打开 PowerShell 并运行:
# 启用容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
步骤 2:安装 Microsoft 更新源(可选但推荐)
# 安装 OneGet 提供者(如果未安装)
Find-PackageProvider -Name NuGet | Install-PackageProvider -Force
# 安装 Microsoft 软件包管理器源
Install-PackageProvider -Name NuGet -Force
Register-PackageSource -ProviderName PowerShellGet -Name DockerMsftProvider -Location https://dockermsft.blob.core.windows.net/dockercontainer -Trusted
步骤 3:安装 Docker Engine
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 重启服务器
Restart-Computer -Force
安装完成后,Docker 服务会自动启动并设置为开机自启。
步骤 4:验证安装
重启后,运行:
# 查看 Docker 版本
docker --version
# 查看 Docker 信息
docker info
输出应包含:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.x
...
Operating System: Windows Server 2019 Datacenter
...
✅ 四、配置 Docker(可选)
设置镜像提速(国内用户推荐)
编辑或创建配置文件:
# 创建 daemon.json 配置文件
@"
{
"registry-mirrors": [
"https://<你的镜像提速地址>.mirror.aliyuncs.com"
]
}
"@ | Set-Content -Path 'C:ProgramDataDockerconfigdaemon.json' -Encoding Ascii
替换
<你的镜像提速地址>为阿里云、腾讯云等提供的提速地址。
然后重启 Docker 服务:
Restart-Service docker
✅ 五、运行第一个容器
# 拉取一个 Windows Server Core 镜像(首次较慢)
docker pull mcr.microsoft.com/windows/servercore:ltsc2019
# 运行一个简单命令
docker run mcr.microsoft.com/windows/servercore:ltsc2019 echo "Hello from Docker on Windows Server!"
❌ 六、常见问题与注意事项
| 问题 | 解决方案 |
|---|---|
Install-Package : No match was found |
检查网络,确保能访问 dockermsft.blob.core.windows.net |
| 容器拉取失败 | 确保宿主机和镜像版本兼容(如 OS 版本 build 号匹配) |
| 无法运行 Linux 容器 | Windows Server 不支持 WSL2,只能运行 Windows 容器 |
| 性能慢 | Windows 容器启动较慢,建议使用 Nano Server 镜像优化 |
✅ 七、升级 Docker
# 检查更新
Update-Package -Name docker -ProviderName DockerMsftProvider
# 重启
Restart-Service docker
✅ 八、卸载 Docker
# 卸载 Docker 包
Uninstall-Package -Name docker -ProviderName DockerMsftProvider
# 移除源
Unregister-PackageSource -ProviderName PowerShellGet -Name DockerMsftProvider
✅ 九、替代方案(推荐用于新项目)
虽然可以在 Windows Server 上运行 Docker,但更现代的做法是:
- 使用 Windows Server + Kubernetes(如 AKS-HCI、OpenShift)
- 或迁移到 Linux + Docker + 容器化 .NET 应用
💡 微软已逐步将容器重心转向 Linux 和 Azure 容器服务。
✅ 总结
| 项目 | 内容 |
|---|---|
| 操作系统 | Windows Server 2019/2022 |
| 容器类型 | Windows 容器(原生) |
| 安装方式 | PowerShell + DockerMsftProvider |
| 是否支持 Linux 容器 | ❌ 不支持(无 WSL2) |
| 推荐用途 | 运行 .NET Framework 容器化应用 |
如果你有具体的 Windows Server 版本或网络环境(如内网、无网络),可以告诉我,我可以提供定制化安装脚本。
CLOUD云计算