在 Windows Server 2019 上部署 Docker 容器,通常使用 Docker Desktop for Windows(适用于桌面版)或 Docker EE/CE on Server(适用于服务器版)。由于 Windows Server 2019 是服务器操作系统,官方推荐且最稳定的方式是安装 Docker Engine for Windows (Server),而不是 Docker Desktop(后者主要用于开发环境)。
以下是完整的部署步骤:
✅ 前提条件
- Windows Server 2019 已安装最新累积更新。
- 启用 Hyper-V 功能(Docker 依赖 Hyper-V 容器技术)。
- 系统为 64 位。
- 建议关闭杀毒软件临时干扰(生产环境请配置白名单)。
🔧 步骤 1:启用 Hyper-V 和容器功能
以管理员身份打开 PowerShell,执行以下命令:
# 启用 Hyper-V 功能
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
# 启用 Containers 功能(可选,但推荐)
Install-WindowsFeature -Name Containers -Restart
⚠️ 注意:重启后需等待系统完全启动。
📦 步骤 2:下载并安装 Docker Engine
访问微软官方 Docker 仓库获取安装包:
🔗 下载地址(官方推荐):
https://github.com/microsoft/Docker/releases
选择适合 Windows Server 2019 的版本,例如:
docker-ce-24.0.x-x.x.x-windows-x86_64.zip(社区版 CE)- 或从 Microsoft Store 安装(仅限部分场景)
安装方式一:使用 MSI 安装包(推荐)
- 下载
docker-ce-<version>.msi - 双击运行,按向导完成安装。
- 安装过程中选择 “Windows Containers” 模式(默认)。
安装方式二:使用 PowerShell 脚本自动安装(高级用户)
# 设置环境变量
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
# 下载 Docker 引擎
Invoke-WebRequest -Uri "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" -OutFile "$env:TEMPdocker.zip"
# 解压
Expand-Archive -Path "$env:TEMPdocker.zip" -DestinationPath "$env:TEMPdocker"
# 将 docker.exe 添加到 PATH
Add-Content $env:USERPROFILE.profile "setx PATH ""$env:TEMPdocker;$env:PATH"""
# 重启终端或重新加载 profile
Update-SessionEnvironment
💡 更推荐使用官方提供的 Setup.ps1 脚本(见下方链接):
https://raw.githubusercontent.com/microsoft/Windows-Containers/main/tools/setup-docker.ps1
▶️ 步骤 3:验证 Docker 是否安装成功
打开新的 PowerShell 窗口(确保路径已刷新),运行:
docker --version
docker info
如果看到版本信息和详细信息,说明安装成功。
🐳 步骤 4:拉取并运行第一个容器
# 拉取一个测试镜像
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019
# 运行容器
docker run --rm -it mcr.microsoft.com/windows/nanoserver:ltsc2019 powershell
你将进入一个 Windows Nano Server 的命令行环境。
🛡️ 额外建议(生产环境)
| 项目 | 建议 |
|---|---|
| 网络模式 | 使用 nat 或 transparent 模式,避免桥接冲突 |
| 存储驱动 | 默认 windowsfilter,可改为 ntfs 优化性能 |
| 日志轮转 | 配置 daemon.json 限制日志大小:{"log-driver": "json-file", "log-opts": {"max-size":"10m", "max-file":"3"}} |
| 安全加固 | 禁用不必要的端口,定期更新镜像和引擎 |
创建 C:ProgramDataDockerconfigdaemon.json 文件内容示例:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "windowsfilter"
}
然后重启 Docker 服务:
Restart-Service docker
❓ 常见问题排查
| 问题 | 解决方案 |
|---|---|
docker: command not found |
检查 PATH 是否包含 Docker 目录,重启终端 |
Cannot connect to the Docker daemon |
确认 docker 服务正在运行:Get-Service docker |
| 容器无法联网 | 检查防火墙规则,允许 Docker 相关端口(如 2375, 2376) |
| 内存不足 | 调整 Docker 资源限制:docker update --memory=2g <container> |
📚 参考文档
- 官方文档:https://docs.docker.com/engine/install/windows-server/
- GitHub 仓库:https://github.com/microsoft/Windows-Containers
- 镜像仓库:https://mcr.microsoft.com/
✅ 完成以上步骤后,你即可在 Windows Server 2019 上稳定运行 Docker 容器了。如需进一步集成 Kubernetes、CI/CD 或监控,可在此基础上扩展。
需要我为你生成一个自动化部署脚本(.ps1)吗?
云服务器