在 Windows Server 2022 上部署 Docker 环境,主要有两种主流方式:
-
Docker Desktop for Windows(推荐用于开发/测试)
- 基于 WSL2 或 Hyper-V
- 图形化界面友好,适合开发者
- 注意:官方许可仅适用于个人、小型企业(<10人且年收入<$1M),生产环境需谨慎评估许可条款
-
Docker Engine + Windows Container Support(推荐用于生产/服务器环境)
- 无 GUI,命令行管理
- 完全免费,支持商业使用
- 需要启用 Windows 容器功能
✅ 推荐方案:在生产环境中使用 Docker Engine + Windows Containers
前提条件
- Windows Server 2022 Datacenter 或 Standard 版本
- 已安装最新更新
- 启用 Hyper-V 和容器功能(Windows Server 本身支持容器,无需额外 Hyper-V)
- 建议关闭 Defender 实时扫描对 Docker 目录的影响(可选优化)
📦 步骤一:启用 Windows 容器功能
以管理员身份打开 PowerShell,运行:
Install-WindowsFeature Containers
重启服务器:
Restart-Computer
💡 Windows Server 2022 默认支持 Windows 容器和 Linux 容器。若需运行 Linux 容器,还需安装 WSL2 或 Docker Desktop;若仅运行 Windows 容器,则继续以下步骤。
🐳 步骤二:安装 Docker Engine
方法 A:使用 Chocolatey(推荐)
choco install docker-engine -y
安装完成后启动服务:
Start-Service docker
Set-Service -Name docker -StartupType 'Automatic'
验证安装:
docker --version
docker info
方法 B:手动下载安装
-
访问 Docker Hub Windows Server 镜像页面 或直接下载 Docker Engine MSI:
- 下载地址:https://download.docker.com/win/static/stable/x86_64/
- 选择对应版本的
.msi文件(如docker-24.0.7.msi)
-
双击安装程序,按提示完成安装。
-
安装后同样执行:
Start-Service docker
Set-Service -Name docker -StartupType 'Automatic'
🧪 步骤三:测试 Docker 是否正常工作
拉取一个轻量级 Windows 基础镜像并运行:
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd
应进入交互式命令提示符,说明 Docker 工作正常。
🐧 选项 A:如需运行 Linux Container
Windows Server 2022 不原生支持 Linux 容器,必须通过以下任一方式:
方案 1:使用 Docker Desktop(含 WSL2 后端)
- 下载并安装 Docker Desktop for Windows
- 安装时勾选 "Use WSL 2 instead of Hyper-V"
- 确保已启用 WSL2:
wsl --install # 重启后确认 wsl --list --verbose - 启动 Docker Desktop,切换至 Linux 容器模式
⚠️ 注意:Docker Desktop 有许可证限制,不适合大规模生产部署。
方案 2:使用 Linux VM + Docker
在 Hyper-V 中创建一台 Linux 虚拟机(如 Ubuntu),在其内部安装 Docker Engine,实现 Linux 容器支持。
🔒 安全与最佳实践
- 不要将 Docker socket 暴露给非信任用户
- 使用网络隔离:为不同应用设置独立桥接网络
- 定期更新 Docker 引擎
- 使用只读文件系统和安全策略
- 监控资源使用:Windows 容器共享主机内核,避免资源争用
❓ 常见问题
Q: 为什么 docker ps 显示空白?
A: 确保 Docker 服务正在运行:
Get-Service docker | Select-Object Status, StartType
Q: 如何切换容器类型(Windows/Linux)?
A:
- Windows 容器:直接运行
docker run ... - Linux 容器:需使用 Docker Desktop + WSL2 或 Linux VM
Q: 生产环境能否免费使用?
A:
- Docker Engine on Windows Server:✅ 免费,可用于商业
- Docker Desktop:❌ 仅限小团队或个人,大企业需购买订阅
📌 总结
| 场景 | 推荐方案 |
|---|---|
| 开发/测试 | Docker Desktop + WSL2 |
| 生产环境(Windows 容器) | Docker Engine + Windows Containers |
| 生产环境(Linux 容器) | Linux VM + Docker Engine 或迁移到 Linux 主机 |
如有更多具体需求(如 Kubernetes 集成、CI/CD 流水线等),可进一步扩展配置。
云服务器