在 Windows Server 2019 上运行 Docker,需要安装 Docker Enterprise Edition (EE) 或使用 Microsoft 提供的容器功能结合社区工具(如 Docker Desktop 不支持 Server 系统)。以下是详细步骤:
✅ 一、前提条件
确保你的系统满足以下要求:
- 操作系统:Windows Server 2019(建议最新更新)
- 系统架构:x64
- 启用 Hyper-V 和 Containers 功能(如果使用半虚拟化容器)
- 至少 4GB 内存
- 管理员权限
✅ 二、安装方式选择
方式一:使用 Microsoft 官方支持 + Docker EE(推荐用于生产)
注意:Docker 官方已不再为 Windows Server 单独提供“Docker Desktop”,但可以使用 PowerShell 安装 Docker Engine。
步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行:
Install-WindowsFeature -Name Containers
安装完成后重启服务器:
Restart-Computer -Force
步骤 2:安装 Docker Engine(通过脚本)
从 PowerShell 执行以下命令下载并安装 Docker:
# 添加 Docker 软件包源
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker 最新版本
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 可选:查看可用版本
Get-Package -Name Docker -ProviderName DockerMsftProvider
步骤 3:重启系统
Restart-Computer -Force
步骤 4:验证安装
重启后检查服务是否运行:
Get-Service docker
启动 Docker 服务(如果未自动运行):
Start-Service docker
测试 Docker 是否正常工作:
docker --version
docker run hello-world:nanoserver
⚠️ 注意:Windows 容器镜像必须与宿主机兼容。例如,Windows Server 2019 支持
nanoserver和windowsservercore镜像。
✅ 三、配置 Docker(可选)
设置开机自启
Set-Service docker -StartupType Automatic
使用国内镜像提速器(可选)
编辑或创建配置文件:
路径:C:ProgramDatadockerconfigdaemon.json
内容示例(使用阿里云镜像提速):
{
"registry-mirrors": ["https://<your-accelerator>.mirror.aliyuncs.com"]
}
替换
<your-accelerator>为你在 阿里云容器镜像服务 获取的专属地址。
保存后重启 Docker:
Restart-Service docker
✅ 四、运行 Windows 容器示例
# 拉取基础镜像
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019
# 运行一个简单命令
docker run --rm nanoserver:ltsc2019 ver
# 运行 IIS 示例(较大镜像)
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
访问 http://localhost 应该能看到 IIS 欢迎页。
✅ 五、常见问题解决
| 问题 | 解决方法 |
|---|---|
docker : The term 'docker' is not recognized |
确保 PATH 包含 C:Program FilesDocker,或重启 PowerShell |
| 容器无法启动 / 兼容性错误 | 检查宿主机 OS 版本与容器镜像版本是否匹配(如 LTSC2019 对应) |
| 镜像拉取慢 | 配置 registry-mirrors 提速 |
| 出现 Hyper-V 相关错误 | 在 BIOS 中启用虚拟化,并确保已安装 Hyper-V 角色 |
✅ 六、注意事项
- Windows Server 2019 默认只支持 Windows 容器,不支持 Linux 容器(除非启用 WSL2 或特殊桥接,但不推荐在 Server 上这样做)。
- Docker Engine 在 Windows 上是通过
containerd和runhcs实现的。 - 生产环境建议使用 Kubernetes + containerd,而不是直接依赖 Docker CLI。
✅ 七、替代方案(现代推荐)
微软正在推动使用 containerd + Kubernetes(如 AKS-HCI 或 OpenShift) 替代传统 Docker 引擎。但对于轻量级部署,Docker Engine 依然适用。
🔗 参考文档
- Microsoft Docs: Install Docker EE on Windows Server
- Docker 官方归档文档:https://docs.docker.com/engine/installation/windows/docker-ee/
如果你希望我提供一键安装脚本或自动化部署方案,也可以告诉我你的具体需求(如是否联网、是否内网环境等)。
CLOUD技术博