在 Windows Server 云服务器上运行 Docker,需要根据你使用的 Windows Server 版本 和 容器类型(Windows 容器或 Linux 容器) 进行配置。以下是详细的步骤指南:
✅ 一、前提条件
-
支持的 Windows Server 版本
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
- Windows Server, version 1809 及以上(长期服务频道 LTS 或半年度频道)
-
必须是 64 位系统
-
管理员权限
-
启用 Hyper-V 和容器功能(如果使用 Windows 容器)
-
云服务商支持嵌套虚拟化(如 Azure、AWS、阿里云等通常支持)
✅ 二、安装 Docker Engine(Windows 上的 Docker EE / Moby)
Windows Server 不像 Windows 10/11 那样直接支持 Docker Desktop,因此需要安装 Docker Enterprise Edition (Docker EE) 或社区版替代方案。
方法一:使用 Microsoft 提供的脚本安装 Docker(推荐)
适用于 Windows Server 2016、2019、2022
- 以管理员身份打开 PowerShell
# 安装 OneGet 模块(包管理)
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 安装完成后重启服务器
Restart-Computer -Force
- 验证 Docker 是否运行
docker --version
docker run hello-world:nanoserver
注意:
hello-world:nanoserver是 Windows 容器镜像,不能用hello-world(Linux 镜像)
✅ 三、切换容器模式(可选)
默认情况下,Docker 在 Windows 上运行的是 Windows 容器。
如果你想运行 Linux 容器,需要:
启用 WSL2 + Linux 子系统(仅限 Windows Server 2022 及更高版本支持较好)
但更常见的做法是:
⚠️ Windows Server 原生不支持 Docker Desktop,也无法像 Win10 那样轻松切换 Linux 容器。
✅ 解决方案:
- 使用 Windows 容器(推荐用于 .NET Framework/.NET Core 应用)
- 或者部署一个 Linux 云服务器 来运行 Linux Docker 容器(更高效)
✅ 四、常用操作命令
# 查看 Docker 版本
docker info
# 拉取 Windows 镜像示例
docker pull mcr.microsoft.com/windows/servercore:ltsc2022
docker pull mcr.microsoft.com/dotnet/aspnet:8.0
# 运行一个简单容器
docker run -d -p 80:80 mcr.microsoft.com/dotnet/aspnet:8.0
# 构建镜像(需有 Dockerfile)
docker build -t myapp .
# 查看运行中的容器
docker ps
✅ 五、配置 Docker 开机自启
Docker 服务默认会注册为 Windows 服务:
# 设置 Docker 服务开机启动
Set-Service Docker -StartupType Automatic
# 启动服务
Start-Service Docker
✅ 六、使用 Docker Compose(可选)
- 下载
docker-compose-windows-amd64.exe
Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-windows-x86_64.exe" -OutFile $env:ProgramFilesDockerdocker-compose.exe
-
重命名为
docker-compose.exe并加入 PATH -
验证:
docker-compose --version
✅ 七、注意事项
| 项目 | 说明 |
|---|---|
| 🐳 容器类型 | 推荐使用 Windows 容器(基于 Nano Server 或 ServerCore) |
| 💾 镜像大小 | Windows 镜像较大(通常几百 MB 到 GB),注意磁盘空间 |
| 🔧 性能 | Windows 容器性能低于 Linux 容器,适合特定场景(如 IIS、.NET Framework) |
| ☁️ 云平台建议 | 若主要运行 Linux 应用,建议使用 Linux 云服务器跑 Docker |
✅ 八、常见问题排查
-
错误:failed to create endpoint on network nat
- 重置网络:
Reset-NetAdapter - 或重启 Docker 服务
- 重置网络:
-
无法拉取镜像?
- 检查网络X_X、防火墙
- 使用国内镜像提速(如 Azure China、阿里云镜像)
-
Docker 服务无法启动?
- 确保已启用 Hyper-V 和 Containers 功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All
- 确保已启用 Hyper-V 和 Containers 功能:
✅ 九、替代方案(推荐生产环境)
如果你希望更灵活地运行混合容器,可以考虑:
- 使用 Azure Container Instances (ACI) 或 Amazon ECS/EKS 等托管服务
- 在 Windows Server 上运行 Kubernetes (AKS-Engine / KubeAdm) 支持 Windows 节点
- 使用 Rancher / Portainer 图形化管理 Windows Docker 主机
总结
| 步骤 | 内容 |
|---|---|
| 1 | 确认 Windows Server 版本支持 |
| 2 | 安装 DockerMsftProvider 并安装 Docker |
| 3 | 重启并测试 docker run |
| 4 | 使用 Windows 容器镜像开发部署应用 |
| 5 | (可选)安装 Docker Compose |
如果你提供具体的云平台(如阿里云、腾讯云、AWS、Azure)和 Windows Server 版本,我可以给出更定制化的安装脚本。
是否需要我为你生成一键安装脚本?
云服务器