在 Windows Server 2019 上使用 Docker 部署项目,需要以下前置准备:
1. 系统要求
- Windows Server 2019 Standard 或 Datacenter 版本(版本 1809 或更高)
- 启用 Hyper-V 角色(用于 Windows 容器)
- 64 位处理器,支持 SLAT(二级地址转换)
- 至少 4GB RAM(建议 8GB+)
- BIOS 中启用虚拟化技术(Intel VT-x/AMD-V)
2. 安装 Docker
方法一:使用 PowerShell(推荐)
# 安装 Docker 提供程序
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider
# 重启服务器
Restart-Computer -Force
方法二:使用 Chocolatey
# 安装 Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# 安装 Docker
choco install docker-desktop -y
3. 配置 Docker
# 设置 Docker 服务自动启动
Set-Service docker -StartupType Automatic
# 启动 Docker 服务
Start-Service docker
# 验证安装
docker version
docker run hello-world:nanoserver
4. 防火墙配置
# 开放 Docker 相关端口(如果需要外部访问)
New-NetFirewallRule -DisplayName "Docker Port 2375" -Direction Inbound -LocalPort 2375 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Docker Port 2376" -Direction Inbound -LocalPort 2376 -Protocol TCP -Action Allow
5. 容器类型选择
根据项目需求选择容器类型:
Windows 容器
# 切换到 Windows 容器模式
& $Env:ProgramFilesDockerDockerDockerCli.exe -SwitchWindowsEngine
Linux 容器(需要 WSL2)
# 切换到 Linux 容器模式
& $Env:ProgramFilesDockerDockerDockerCli.exe -SwitchLinuxEngine
6. 安装 WSL2(用于 Linux 容器)
# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 下载并安装 WSL2 内核
# 从 https://aka.ms/wsl2kernel 下载安装
# 设置 WSL2 为默认版本
wsl --set-default-version 2
7. Docker Compose 安装
# 下载 Docker Compose
Invoke-WebRequest "https://github.com/docker/compose/releases/latest/download/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFilesDockerDockerresourcesbindocker-compose.exe
# 验证安装
docker-compose --version
8. 存储配置
# 修改 Docker 数据存储路径(可选)
# 停止 Docker 服务
Stop-Service docker
# 修改配置文件 C:ProgramDataDockerconfigdaemon.json
# 添加 "data-root": "D:\docker-data"
9. 验证部署环境
# 测试运行容器
docker run --rm mcr.microsoft.com/windows/nanoserver:1809 cmd /c "echo Hello from Windows Container"
# 查看 Docker 信息
docker info
# 查看镜像列表
docker images
10. 项目特定准备
- 准备 Dockerfile 或 docker-compose.yml
- 确保应用程序支持容器化
- 配置持久化存储(卷映射)
- 设置网络模式(bridge、host、nat)
- 配置日志收集策略
常见问题解决
如果遇到 Hyper-V 错误:
# 检查 Hyper-V 是否启用
Get-WindowsFeature -Name Hyper-V
# 启用 Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
性能优化建议:
- 将 Docker 数据目录放在 SSD 上
- 为 Docker 分配足够的内存和 CPU
- 使用 Docker 的 production 配置
- 定期清理无用镜像和容器
完成以上步骤后,就可以在 Windows Server 2019 上使用 Docker 部署项目了。
CLOUD技术笔记