Windows Server 2019上使用Docker部署项目需要哪些前置准备?

在 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

性能优化建议:

  1. 将 Docker 数据目录放在 SSD 上
  2. 为 Docker 分配足够的内存和 CPU
  3. 使用 Docker 的 production 配置
  4. 定期清理无用镜像和容器

完成以上步骤后,就可以在 Windows Server 2019 上使用 Docker 部署项目了。

云服务器